Kialakítása keresés funkciót a helyszínen php és mysql, php

Az egyik legnépszerűbb és szükséges funkciókat minden helyszínen - egy kereső alkalmazásával valósul meg egy speciális formája. Ez a funkció lehetővé teszi a látogatóknak, hogy gyorsan megtalálja a helyszínen érdekli azok tartalmát.

Ma szeretnénk mondani, hogy hogyan lehet egy site keresést a formában, hogy a lekérdezés egy adatbázis tábla és információk megjelenítéséhez a jelenlegi vezetők az oldalon. Meg fogja tanulni, hogyan lehet létrehozni egy adatbázis tábla, amely információt tartalmaz a jelenlegi személyzet.

Adatbázis létrehozása

Ha nem biztos, hogy tudja kezelni az adatbázist a tárhely, kérjük, forduljon a hosting cég utasításait vagy támogatást. Miután az adatbázis létrehozása, meg kell aktiválni, hozzon létre egy táblázatot, és mentse el a szükséges adatokat.

A legnépszerűbb eszköz kezelésére MySQL PHP My Admin. Ez az eszköz elegendő a jelenlegi vezetés.

Tábla létrehozása

A táblázatban kell létrehozni a következő formában:

Egy adatbázis tábla áll a sorok és oszlopok Excel. Az első oszlop azonosítását teszi lehetővé az adatok név szerint. Következő egy oszlop adattípusok (adattípus), amely rámutat arra, hogy milyen típusú adatot tartalmaz az oszlop. A Hossz mező (hossz) meghatározza a maximális memória (tároló) az oszlop. Az általunk használt változókat, amelyek lehetővé teszik nagyobb rugalmasságot biztosít. Más szóval, ha a név hossza kevesebb, mint 50 karakter, akkor lehet elfoglalni csak egy része a lefoglalt terület.

És ezek között a személyzet nem lehet null (null, üres). Az első sorban sárgával, mert az oszlop ID - az elsődleges kulcsot. Az elsődleges kulcs az adatbázis garantálja, hogy minden bejegyzést egyedi. Ez az oszlop is használják autoincrement, ami azt jelenti, hogy minden rekord adatbázisunkban lesz egyedi számot automatikusan.

Győződjön alkalmazottak képviselői az asztalra

Miután befejezte az asztalra, elkezdi töltse ki az adatokat. 6 feljegyzések elég rögzíti azokat a szabályokat szem előtt tartva. Az alábbiakban azt javaslom, saját példa:

Formák fejlesztése

Ha ismeri a HTML. Itt minden egyértelműnek kell lennie legalább addig, amíg a nyitó form tag. Ezen belül a tag a legfontosabb eleme az összes kódot - action attribútum. Mivel az intézkedések űrlapunk mi adja meg a nevét a fájlt, majd alkalmazni azt a query string „go”.

Ellenőrzése a kritériumoknak való megfelelés

Amikor a felhasználó belép a név vagy vezetéknév, majd a gombra kattint, az űrlap adatokat küld magát, és hozzáteszi, a végén a query string „go”. Ebben a szakaszban, akkor ellenőrizze a rendelkezésre álló lekérdezési karaktersorozat megy. Ha az eredmény pozitív, a keresési eredmények között.

Visszavonását megelőzően a kért eredményt, meg kell, hogy még egyszer ellenőrizze: (1) hogy a megerősített formában, (2) hogy a query string értéket! Menj, (3), hogy a keresési lekérdezés szerepel kis- vagy nagybetűs? Ha egyik teszt nem ad pozitív eredményt (igaz), akkor nem szükséges, hogy bármely intézkedés.

Először is, adjunk hozzá egy kis PHP kód a keresés az oldalon a záró címke előtt :

Először is megnyitjuk a PHP-kód mondat „” címke.

Bármilyen PHP-kód belsejében ez a pár tag hajtja végre a szerveren. Ezután ellenőrizzük, hogy ha a forma is megerősítette:

Használjuk a beépített isset. amely visszaadja bool típusú. és tedd bele egy array $ _POST. Logikai kifejezés programozás lehetővé teszi számunkra, hogy egy igazi. vagy hamis.

Ezért, ha a függvény visszatérési értéke true. Az űrlap elküldésekor, és folytatnunk kell a kód további. Ha a függvény false. levezetjük egy hibaüzenetet. Mentse az összes tárcsázott kódot search_submit.php fájlt.

Ezután kell ellenőrizni, hogy az érték a go a query string:

Mi tesz egy feltételes logikai kifejezés a mag belsejében, de ezúttal a $ _GET tömb, valamint az értéke „go”. Mentsd el a fájlt search_go.php.

Most arra van szükség, hogy győződjön meg arról, hogy a látogatók is bevitte az első betűt a query string csak a felső, vagy csak kisbetűs. Azt is meg kell, hogy egy zatává a keresési feltételeknek által megadott látogató. A legjobb, hogy ellenőrizze a bevitt adatokat a látogató egy reguláris kifejezés:

Mi tesz egy feltételes logikai kifejezés a mi kettő. Ezúttal reguláris kifejezéseket, hogy érvényesítse bemenet. Használjuk a beépített függvény preg_match két érv: a reguláris kifejezés és olyan formában területet, amelyre a tesztet kell alkalmazni.

Esetünkben ez lesz a „Name» (név). Ahhoz, hogy távolítsa el a keresést megadott paraméterek látogató, létrehozunk egy változót $ name, és összeköti azt a bejegyzést a mező nevét a formában, hogy kell használni az SQL-lekérdezés. Most már megvalósult: (1) az adatokat küldő forma (2), a query string értékét tartalmazza megy, és (3) egy látogató vagy lépett nagybetűs, kisbetűs, vagy az első levél. És mindezen ellenőrzés megtörténik, mielőtt a változásokat az adatbázisba. Változtatások mentéséhez.

Eredmények Connect Select query és Return egy adatbázis tábla

Ahhoz, hogy az adatokat a táblázat első a keresési script kívánt webhely kapcsolódni a szerverhez. Ehhez használjuk a következő kódot:

Készítünk egy változót $ db. és megkötik azt a beépített MySQL mysql_connect. amely három paramétert: az adatbázis szerver (localhost, ha helyileg fut.), felhasználónevét és jelszavát.

Ezt követően, mi fut a beépített PHP-függvény meghalni. amely leállítja a további végrehajtását a kódot, ha nincs kapcsolat az adatbázissal. És információt jelenít meg a hiba mellett futás a beépített MySQL mysql_error funkciót. amely visszaadja az oka a hiba. Mentsd search_connectdb.php fájlt.

Ezután a kód alábbiakban bemutatott, akkor melyik adatbázist használja:

Hozzon létre egy változót nevű mydb és megkötik azt a beépített MySQL-funkció mysql_select_db. majd adja meg a nevét, amelyek az adatbázis a korábban létrehozott. Következő, megkérdezett egy adatbázis tábla segítségével az SQL-lekérdezés egy változó neve, amely tartalmazza a keresési paramétereket lépett egy látogató:

A felmérés az adatbázis tábla, létrehozunk egy változót $ sql. és megkötik azt a vonalat tartalmazó SQL-lekérdezést. Használjuk a SELECT letölteni az értékeket a id oszlopot. valamint az első és az utolsó név az érintkezők asztalra. Ezután használja a WHERE záradékot, valamint az értékek neve szűkíteni a keresést.

Együtt a LIKE operátor, akkor használja a százalékjel (%) - a speciális karaktert, amely visszaadja 0 vagy több karakter, valamint a változó nevét a keresőmezőbe. Ennek eredményeként a LIKE (együtt speciális karakterek) bármely megfelelő nevet az adatbázisban táblázatban. Akkor írja le a folyamatot: „Mi válasszon egy nevet a kapcsolatok asztalra. illő a látogató. " Mentsd search_query.php fájlt.

Ezután meg kell tenni az eredményeket SQL-lekérdezés egy változó, és futtatni a mysql_query függvény. az alábbiak szerint:

Készítünk egy változó $ result. és rendeljen hozzá egy értéket mysql_query () függvény. hozza, hogy $ query. Most a lekérdezést tárolja a változó eredményt. Az eredmény megjelenítéséhez PHP. létrehozunk egy hurkot, és ezután kiadja az adatokat rendezetlen listát:

Először létrehozunk egy while ciklus. benne létre egy változót nevű sort. és inicializálja a visszatérési értéket mysql_fetch_array funkciót. amely megkapja a változó eredménnyel. ami a mi SQL lekérdezés. Bent a while ciklus, szánunk az egyes érték az oszlop változó értékét az azonos nevet. Aztán, mi származik az értékeket belül rendezetlen listát.

Fontos figyelni a két pontot: (1) egy while ciklus nem szükséges értékeket rendelni változók tömb sor. Mivel az értékek lehet venni közvetlenül egy sor egymás után; (2) Tag horgonyt. amely általunk használt fájl nevét az id és a fő kulcs. Ennek az az oka abban a tényben rejlik, hogy kezdetben nem jelenik meg a sok keresési elemet.

Mivel azt mutatják, csak a vezetéknév, keresztnév, tulajdonítva azonosító címke végén a horgonyt. tudjuk használni az azonosítót kiegészítő megkeresést, amely többlet információt a személyzetet. Mentse el a fájlt és vizsgálati forma PHP site kereső (search_display.php).

eltávolítás lapok

Találatok jelennek meg egy rendezetlen lista, de a lényeg az, hogy nem kell a lapok között. Ahhoz, hogy megszabaduljon, adjuk hozzá a következő CSS-szabálynak a legelején a fájlt a fejét:

Keresés levélben

Megvalósítása érdekében a keresési levélben kell csak néhány extra sornyi kódot. Add hozzá ezt a felhasználóbarát funkciók a látogatók számára. Így képesek lesznek megtalálni a személyzet képviselői levélben, hogy tartalmazza az első vagy utolsó név.

Adjuk hozzá a következő sort a kódot a zárás után form tag:

Mi köti tag kérni egy sort a horgonyt, és állítsa be egy bizonyos levelet. Megvalósítása keresési funkció a betűk, meg kell hozzá a következő kódot csak miután a záró zárójel az eredeti forgatókönyvet, az alábbiak szerint:

Itt mi változott négy töredékei script kód Search this site:
  • Az általunk használt isset () függvénnyel. és így egy sor $ _GET. majd ellenőrizze értéket;
  • Készítünk egy változó $ írni és kezdeti érték array $ _GET;
  • Adjuk hozzá a változó betű az SQL-lekérdezés;
  • Határozza meg a levél változó kifejezésekben, ahol megkapjuk a megszámoltuk sorok számát.

Search_byletter.php Mentsd el a fájlt, és ellenőrizze az eredményt.

Keresés egy adott munkavállaló

Információk megjelenítéséhez a többi a személyzet, amely keresztül továbbított egyedi azonosítóját a mi kapcsolatok, meg kell adni a következő kódot csak miután a záró zárójel a levélben script. az alábbiak szerint:

Itt mi változott négy kódrészlet:

  • Az általunk használt isset () függvénnyel. és használja, hogy ellenőrizze az azonosító érték a tömbben $ _GET;
  • Készítünk egy változó $ ContactID és inicializálja a tömböt $ _GET;
  • A táblázat bemutatja az összes csillaggal jelölt *. Asterisk - rövidítése az SQL. ami azt jelenti, „add nekem az összes sorok és oszlopok az asztalról.” Annak megállapítására, hogy mely információk jelenjenek meg, utalunk egy változó ContactID végén az SQL-kifejezést;
  • Egyéb A tájékoztatás az egyes alkalmazottak képviselőivel.

Search_byid.php Mentsd el a fájlt, és ellenőrizze az eredményt.

SQL-injekció

Ennek az az oka, hogy mi adunk a keresési mezőbe, a reguláris kifejezés, hogy senki nem tud beavatkozni a SQL-lekérdezés. Korábban az volt a probléma széles körben elterjedt, és a hackerek sikerült végezzen a saját SQL-lekérdezéseket. míg manipulálni az alkalmazás. Például, ha megengedték a lehetőséget, hogy használja az aposztróf körünkbe, a támadó egyszerűen távolítsa el az adatbázis lekérdezés használatával:

Mint már említettük, a reguláris kifejezés biztosítja, hogy az első karakter látogató csak írja be a betűket a felső vagy az alsó ügyben.

Végén

A mai cikkben, megbeszéltük, hogyan lehet egy site kereső, valamint:
  • Hozzon létre egy adatbázist, és a megfelelő táblák;
  • Használja eszközök kezelésére adatbázisok létrehozásához oszlopok és bemenő adatok;
  • Fejleszteni kell a keresési forma alapján a PHP. amely képes ellenőrizni a bevitt adatok, a jelenléte a változók a kérelmet, és szintén kapcsolódik az adatbázishoz, és megjeleníti az eredményeket a táblázat
  • Hogyan védi az alkalmazás és az adatbázis SQL-injection.

A megszerzett tudás ezt a cikket, akkor könnyen módosíthatja valaki másnak a kódját, valamint bővíteni a funkcionalitást a keresési űrlapot, ha szükséges.

Fordítása a cikk „Hogyan lehet létrehozni egy keresés funkció a PHP és a MySQL” már készített egy csapat barátságos Web design projekt tól Z-ig