Podejrzewam, że wielu początkujących programistów (właściwie to wiem to z własnego doświadczenia :P ) ma problem z praktycznym wykorzystaniem dobroci, jaką dają nam bazy danych. Początki zawsze bywają trudne, dlatego zdecydowałem się napisać tą krótką notkę, aby stało się jasne, w jaki sposób połączyć się z bazą, wykonać zapytanie i wyświetlić dane na stronie.



Zakładam przy tym, że użytkownik ma już utworzoną bazę o nazwie ‘nazwa_bazy’ i że jest w niej tabela ‘klient’ w której są następujące kolumny: id, imie, nazwisko, adres, telefon no i że są wpisane jakieś dane.
W jaki sposób utworzyć bazę napiszę (może ;) ) w innej notce.


<?
// Do połączenia z bazą posłuży nam funkcja db_connect().
 
function db_connect()
{
     // łączymy się z bazą przy pomocy poniższej funkcji podając jej 3 parametry - nazwę hosta, login i hasło do bazy
     $database=mysql_connect ("localhost", "root", "haslo") or die("Nie mogę połączyć z bazą: ".mysql_error());
     // wybieramy bazę danych - na serwerze może być ich wiele
     mysql_select_db('nazwa_bazy') or die("Nie mogę wybrać bazy danych: ".mysql_error());
     // wykonujemy zapytanie mające na celu określenie, jakiego kodowania znaków będzie używał klient (my) przy wysyłaniu zapytań do bazy. Jako, że UFT-8 jest już standardem:
     mysql_query("SET NAMES 'utf8'");
}
 
db_connect(); // łączymy się i mamy nadzieję że wpisaliśmy wszystko OK i PHP nie wywali błędu :P
 
// odczytujemy dane z bazy
$query="SELECT * FROM klient";
$result=mysql_query("$query"); // pamiętaj o apostrofach!
 
echo "<table><tr><td>id</td><td>imie</td><td>nazwisko</td><td>adres</td><td>telefon</td></tr>";
while ($row=mysql_fetch_array($result)) // pętla która rozbija wynik zapytania na poszczególne wiersze
{
     echo "<tr><td>".$row['id']."</td><td>".$row['imie']."</td><td>".$row['nazwisko']."</td><td>".$row['adres']."</td><td>".$row['telefon']."</td></tr>";
}
echo "</table>";
// tym sposobem wyśwetliliśmy w tabelce wszystkie wiersze, które znajdują się w tabeli klient
 
 
//zapisujemy dane do bazy. załóżmy, że chcemy zapisać do bazy dane następującego klienta:
$imie="zenek";
$nazwisko="gacki";
$adres="12-123 Konowałko, ul. Kuciapka 3a";
$telefon="12 3456789";
//w tym celu musimy wykonać zapytanie INSERT INTO:
$query="INSERT INTO klient (id,imie,nazwisko,adres,telefon) VALUES (NULL, '$imie', '$nazwisko', '$adres', '$telefon')";
$result=mysql_query("$query"); //pamiętaj o apostrofach!
?>

… i to na tyle. Odczytaliśmy z określonej tabeli z bazy wszystkie wiersze, oraz dopisaliśmy nowy.
W razie pytań, uwag i niejasności zapraszam do komentowania :)

Dodano 08/07/2009 o 19:07
Kategoria: PHP, SQL
Tagi: , ,