Adatok lekérdezése php script és a LIKE parancs segítségével.
Használjuk a következő táblát:
Táblanév: user /kulcs az username, pirossal jelölve/
| username |
csalad_nev |
kereszt_nev |
telepules |
| admin |
Kiss |
István |
Pécs |
| lulu |
Nagy |
Géza |
Harkány |
| mani |
Felföldi |
Antal |
Pócs |
| hamika26 |
Huba |
Kázmér |
Tolna |
| nagyi12A |
Alham |
Aranka |
Rúzsa |
| cunci |
Nagy |
Marabella |
Budapest |
Keressünk olyan keresztnevet amiben benne van az "ara" szó, és minden adatára kiváncsiak vagyunk amely a táblában található.
<?php
$myConn=
mysql_connect("localhost", "root", "12121212");
mysql_select_db("adatbazis_nev", $myConn);
$adat=
mysql_query("SELECT * FROM user WHERE kereszt_nev LIKE '%ara%' ");
//Most használjunk a for ciklus helyett valami mást! A while() -t, lényege, hogy addig
//ismétlődik amíg a zárójelben lévő feltétel igaz, jelen esetben amennyi sort talált a
//lekérdezés.
while($adatom=
mysql_fetch_assoc($adat)){
print($adatom["username"]."<br/>");
print($adatom["csalad_nev"]."<br/>");
print($adatom["kereszt_nev"]."<br/>");
print($adatom["telepules"]."<br/>");
}
?>
Az
eredmény:
nagyi12A
Alham
Aranka
//Tehát ez a találat ami miatt kiírásra került a többi adata is.
Rúzsa
cunci
Nagy
M
arabella
//És ez a másik találat ami miatt kiírásra került a többi adata is.
Budapest
Mit is csináltunk a SELECT után?
Csillagot raktunk ezzel jelezve, hogy a talált mezőhöz kapcsolódó adatokra is kíváncsiak vagyunk.
A FROM után megadtuk a tábla nevét ahonnan kérjük az adatokat.
A WHERE után adtuk meg a tábla oszlopának nevét, és itt helyeztük el a LIKE-ot, aposztrofok közt adtuk meg mit is keresünk.
A százalékjelekkel adjuk meg, hogy a keresett kifejezés előtt lévő karakter bármilyen és bármennyi lehet, és ugyanez van utána is.
Tehát számunkra a lényeg, hogy benne legyen a keresett szó a mezőbe, és nem érdekes, hogy a mezőben hol helyezkedik el!
Ha azt szeretnénk, hogy csak azokat a mezőket listázza amelyekben az első három karakter az
ara kifejezés, akkor az első %-jelet elhagyjuk. LIKE 'ara%' .