Praca z bazą
 

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:
 
<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">&nbsp;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.
 
Podsumowanie
 
Podsumowując nasz kurs, MySQL jest dość łatwy. Jedyne co trzeba dobrze znać to PHP. W tych kilku rozdziałach przedstawiłem to co jest najważniejsze. Z taką wiedzą każdy będzie potrafił stworzyć księgę gości, katalog czy wyszukiwarkę. Na koniec przedstawię wam jeszcze spis i krótkie opisy wszystkich funkcji php potrzebnych do pracy z bazą MySQL.

 

Pobrano ze strony:
www.BlueMan.aplus.pl