Przeszukiwanie bazy
Praca z bazą jest łatwa kiedy mamy kilka rekordów, ale co zrobić jeżeli jest ich kilkadziesiąt. Jak odnaleźć telefon do Kowalskiego wśród tylu rekordów. Możemy zrobić wyszukiwarkę. Wpiszemy w nią np. Kowalski, a baza wyświetli tylko te rekordy które w polu nazwisko zawierają nasze zapytanie. Oto przykładowy skrypt:
Skrypt wybiera z bazy tylko te rekordy które odpowiadają zapytaniu. SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%" Szukamy w polach nazwisko, imie oraz adres. Wynik zapytania wyświetlamy w tabelce.
Jednak czasami chcemy wyświetlić tylko kilka pierwszych rekordów odpowiadających zapytaniu.
Załóżmy, że szukamy pracowników z Warszawy mamy zlecenie dla 2 osób. W tabelce wyświetlimy pierwsze dwa rekordy które zapytaniu odpowiadają. Do zapytania dodajemy limit np. SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%" limit 0,2 . Pierwsza cyfra w limicie określa pierwszy rekord odpowiadający zapytaniu od którego wyświetlamy, a druga, liczbę rekordów które wstawiamy do tabelki. Jest to dobre gdy mamy dużo rekordów. Możemy wtedy ustalić, że na stronie wyświetlamy np. po 20. Limity dla pierwszych trzech stron wyglądały by np. tak : limit 0,20 , limit 20,20 , limit 40,20.
<html>
<head>
<title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
</head>
<body>
<table border="1" width="98%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
<tr>
<td width="96%" colspan="6" bgcolor="#C0C0C0">
<p align="center"><b><font size="2">Dane osobowe</font></b></td>
</tr>
<tr>
<td width="4%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2"> ID</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">Imię</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Nazwisko</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Data
urodzenia</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Adres</font></td>
<td width="14%" align="center" bgcolor="#E0E0E0"><font size="2">Telefon</font></td>
</tr>
<?php
mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);
if($stan=='szukaj') {
$zapytanie = "SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%"";
$wykonaj = mysql_query ($zapytanie);
while($wiersz=mysql_fetch_array ($wykonaj)) {
echo " <tr>
<td width="6%">".$wiersz['id']."</td>
<td width="18%">".$wiersz['imie']."</td>
<td width="18%">".$wiersz['nazwisko']."</td>
<td width="18%">".$wiersz['dataur']."</td>
<td width="18%">".$wiersz['adres']."</td>
<td width="18%">".$wiersz['telefon']."</td>
</tr>";
}
}
else {
echo "</table><center><br><form method="get" action="szukaj.php3"><input type="text" name="znajdz" size="20"><br><input type="submit" value="szukaj" name="stan"></form></center>";
}
?>
</body>
</html>
<head>
<title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
</head>
<body>
<table border="1" width="98%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
<tr>
<td width="96%" colspan="6" bgcolor="#C0C0C0">
<p align="center"><b><font size="2">Dane osobowe</font></b></td>
</tr>
<tr>
<td width="4%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2"> ID</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0">
<p align="center"><font size="2">Imię</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Nazwisko</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Data
urodzenia</font></td>
<td width="18%" align="center" bgcolor="#E0E0E0"><font size="2">Adres</font></td>
<td width="14%" align="center" bgcolor="#E0E0E0"><font size="2">Telefon</font></td>
</tr>
<?php
mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);
if($stan=='szukaj') {
$zapytanie = "SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%"";
$wykonaj = mysql_query ($zapytanie);
while($wiersz=mysql_fetch_array ($wykonaj)) {
echo " <tr>
<td width="6%">".$wiersz['id']."</td>
<td width="18%">".$wiersz['imie']."</td>
<td width="18%">".$wiersz['nazwisko']."</td>
<td width="18%">".$wiersz['dataur']."</td>
<td width="18%">".$wiersz['adres']."</td>
<td width="18%">".$wiersz['telefon']."</td>
</tr>";
}
}
else {
echo "</table><center><br><form method="get" action="szukaj.php3"><input type="text" name="znajdz" size="20"><br><input type="submit" value="szukaj" name="stan"></form></center>";
}
?>
</body>
</html>
Skrypt wybiera z bazy tylko te rekordy które odpowiadają zapytaniu. SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%" Szukamy w polach nazwisko, imie oraz adres. Wynik zapytania wyświetlamy w tabelce.
Jednak czasami chcemy wyświetlić tylko kilka pierwszych rekordów odpowiadających zapytaniu.
Załóżmy, że szukamy pracowników z Warszawy mamy zlecenie dla 2 osób. W tabelce wyświetlimy pierwsze dwa rekordy które zapytaniu odpowiadają. Do zapytania dodajemy limit np. SELECT * FROM dane where nazwisko like "%$znajdz%" or imie like "%$znajdz%" or adres like "%$znajdz%" limit 0,2 . Pierwsza cyfra w limicie określa pierwszy rekord odpowiadający zapytaniu od którego wyświetlamy, a druga, liczbę rekordów które wstawiamy do tabelki. Jest to dobre gdy mamy dużo rekordów. Możemy wtedy ustalić, że na stronie wyświetlamy np. po 20. Limity dla pierwszych trzech stron wyglądały by np. tak : limit 0,20 , limit 20,20 , limit 40,20.
Autorem tekstu jest:
Mateusz Dutkiewicz
Materiał dodany przez użytkownika: alphan
