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">&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="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.

 

Pobrano ze strony:
www.BlueMan.aplus.pl