Praca z bazą
Teraz będziemy pobierać i dodawać dane do bazy.
Pobieranie danych
Na początek napiszemy skrypt php który na ekranie wyświetli nam
dane pobrane z bazy. Zawartość pól wstawimy w tabelkę np. taką:
Dane osobowe |
ID |
Imię |
Nazwisko |
Data
urodzenia |
Adres |
Telefon |
|
|
|
|
|
|
Skrypt przykładowo wygląda tak:
<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="6%" 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="18%" align="center" bgcolor="#E0E0E0"><font
size="2">Telefon</font></td>
</tr>
<?php
mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);
$zapytanie = "SELECT * FROM dane ";
$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>";
}
?>
</table>
</body>
</html>
Początek skryptu to zwykły HTML tworzy tabelkę, php zaś dodaje jej
komórki i wstawia dane z bazy.
Przeanalizujmy część w php.
Po połączeniu się z serwerem mysql_connect
("127.0.0.1","admin","haslo"); i
wybraniu bazy mysql_select_db (daneosobowe);
wykonujemy zapytanie w SQL które pobiera dane z bazy. Służy do tego
polecenie SELECT. Tłumacząc to
zapytanie na polski wyglądało by tak WYBIERZ * (gwiazdka oznacza
wszystkie pola) Z TABELI dane. Posługując się poleceniem select
możemy wybrać np. tylko to co zawierają pola imie, nazwisko i adres
z naszej bazy. Wtedy zapytanie wyglądał by tak: SELECT
imie,nazwisko,adres FROM dane . Dalsza część skryptu zamknięta
jest w pętli while. Pobieramy dane z
tabeli w bazie do momentu aż się nie skończą. Zapamiętujemy je w
tablicy przyporządkowującej. Służy do tego funkcja mysql_fetch_array
. Jako wartość tej funkcji podajemy wynik naszego zapytania
sql pobierającego dane. Teraz wystarczy przy pomocy komendy php echo
utworzyć komórki tabelki w które wstawiamy kolejne wartości
zmiennych z tablicy. Skrypt jest uniwersalny działa prawidłowo dla
dowolnej liczby rekordów. Nasze dane możemy jednak sortować. Wtedy
do zapytania dodajemy polecenie order np.
SELECT * FROM dane ORDER BY imie . By
posortować dane od największej wartości lub ostatniej litery
alfabetu dodajemy wartość DESC np. SELECT * FROM dane ORDER BY imie DESC
.
Dodawanie rekordów
Nasza baza zawiera jak na razie jeden rekord. Stworzymy skrypt który
doda dane do bazy otrzymane z formularza. Możemy stworzyć dwie
strony jedną z formularzem plik .html i skrypt plik .php ja jednak
stworzę wszystko w pliku php. Oto skrypt:
<html>
<head>
<title>Kurs MySQL - Strona Mateusza Dutkiewicza</title>
</head>
<body>
<?php
if($send=='Wyslij') {
mysql_connect ("127.0.0.1","admin","haslo");
mysql_select_db (daneosobowe);
$zapytanie = "INSERT INTO dane SET imie='$imie', nazwisko='$nazwisko',
dataur='$dataur', adres='$adres',telefon='$telefon'";
$wykonaj = mysql_query ($zapytanie);
echo "<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !";
}
else {
echo "<form method=\"get\" action=\"dodaj.php3\">
<div align=\"center\">
<center>
<table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\"
cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Imie</font></td>
<td width=\"50%\" align=\"center\"><font
size=\"2\" face=\"Verdana\"><input type=\"text\"
name=\"imie\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Nazwisko</font></td>
<td width=\"50%\" align=\"center\"><font
size=\"2\" face=\"Verdana\"><input type=\"text\"
name=\"nazwisko\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Data urodzenia YYYY-MM-DD</font></td>
<td width=\"50%\" align=\"center\"><font
size=\"2\" face=\"Verdana\"><input type=\"text\"
name=\"dataur\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Adres</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"adres\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">Telefon</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"text\" name=\"telefon\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"100%\" colspan=\"2\">
<p align=\"center\"><font size=\"2\" face=\"Verdana\"><input type=\"submit\" value=\"Wyslij\" name=\"send\"><input type=\"reset\" value=\"Kasuj\" name=\"B2\"></font></td>
</tr>
</table>
</center>
</div>
</form>";
}
?>
</body>
</html>
Powyższy skrypt mam nadzieję jest dla osób znających php zrozumiały.
Tu jednak po połączeniu się z bazą nie pobieramy danych komenda SELECT.
Skrypt dodaje dane z formularza. Dane umieszczamy w bazie komenda INSERT.
Z tą komendą spotkaliśmy się już podczas tworzenia bazy tam
podawaliśmy zawartość wszystkich pól. W tym przypadku dodajemy
dane które podał użytkownik. Wiadomo, że w formularzu nie zapytamy
o id jakie powinno być nadane kolejnej osobie bo skąd ona miała by
to wiedzieć. Tworząc bazę zadeklarowaliśmy autonumerację pola id.
INSERT INTO dane SET imie='$imie', nazwisko='$nazwisko',
dataur='$dataur', adres='$adres',telefon='$telefon' to
zapytanie tworzy nowy rekord w pola wstawiając dane otrzymane z
formularza. Polu id przypisuje id większy o 1 od poprzedniego
rekordu.

|