Temat: Obsługa baz danych za pomocą PHP

Bazy danych są zbiorem informacji dla aplikacji internetowych. Można z nich pobrać informacje, które są prezentowane użytkownikowi strony. Do obsługi baz danych są wykorzystywane systemy zarządzania bazami danych. Najpopularniejszym systemem współpracującym z PHP jest MySql. Aby współpraca PHP z MySql była możliwa, musi istnieć baza danych, z którą można się połączyć. Proces komunikacji składa się z kilku etapów:

  • nawiązanie połączenia z MySql i wybór bazy danych,
  • utworzenie zapytania i jego wykonanie,
  • otrzymanie rezultatów i wyświetlenie ich na stronie,
  • zakończenie połączenia z MySql.

Poniżej znajdują się przykłady wyświetlania informacji w postaci listy punktowanej z bazy danych “biblioteka”.

Funkcja mysqli_fetch_array.

W zadaniu chcemy wyświetlić imie i nazwisko z tabeli autorzy z bazy danych biblioteka, w postaci listy punktowanej. W sposób analogiczny można stworzyć listę numerowaną, zamieniając znacznik <ul> na <ol>.

Na początek musimy wykonać połączenie z bazą danych o nazwie biblioteka, za pomocą funkcji mysqli_connect. Nasze połączenie oznaczone jest jako zmienna $con. Następnie wskazujemy parametry połączenia: nazwę serwera: localhost, użytkownika: root, hasło pozostawiamy puste, nazwę bazy danych z którą się łączymy: biblioteka. Wyrażenie wygląda następująco:

$con=mysqli_connect('localhost' , 'root', ' ', 'biblioteka');

Następnie wprowadzamy zapytanie do bazy, które wyświetli imię i nazwisko z tabeli autorzy. Zapytanie oznaczamy zmienną $zap. Funkcja php odpowiadająca za wprowadzanie zapytań do bazy, to mysqli_query. W nawiasie wskazujemy połączenie z którego będziemy korzystać ($con) i polecenie (zapytanie) w postaci sql do bazy danych. Wyrażenie wygląda następująco:

$zap=mysqli_query($con, "select imie, nazwisko from autorzy");

Przed określeniem pętli, która odczyta kolejne wiersze z bazy danych, wstawiamy znacznik języka html odpowiedzialny za tworzenie listy punktowanej.

echo"<ul>";

Teraz tworzymy pętlę, która ma za zadanie wczytanie wszystkich wierszy z bazy danych. Funkcja odpowiedzialna za wyświetlanie informacji z bazy to: mysqli_fetch_array.

while($row=mysqli_fetch_array($zap))
{
echo "<li>".$row['imie']." ".$row['nazwisko']."</li>";
}

W powyższym kodzie widzimy petlę while, której warunek mysqli_fetch_array($zap) oznaczony zmienną $row, sprawdza kolejne wiersze tabeli autorzy. Gdy wszystkie wiersze zostaną odczytane, funkcja zwróci wartość FALSE i zakończy działanie pętli.

Zmienna $row jest tablicą asocjacyjną przechowującą pobrane dane z zapytania. Elementami tej tablicy są: $row[‘imie’] oraz $row[‘nazwisko’]. Znacznik <li>, oznacza kolejny element listy w html. Pozostało już tylko zamknięcie znacznika listy punktowanej </ul> i zamknięcie połączenia z bazą danych: mysqli_close($con);.

Całe wyrażenie wygląda następująco:

<?php
$con=mysqli_connect('localhost','root','','biblioteka');
$zap=mysqli_query($con, "select imie, nazwisko from autorzy");
echo"<ol>";
while($row=mysqli_fetch_array($zap))
{
           echo "<li>".$row['imie']." ".$row['nazwisko']."</li>";
}
echo"</ol>";
mysqli_close($con);
?>
Efekt działania skryptu

Funkcja mysqli_num_rows

Funkcja num_rows zwraca liczbę wierszy znajdujących się w wyniku zapytania. Wartość tę można użyć do zbudowania pętli FOR odczytującej kolejne wiersze zwrócone przez zapytanie.

<?php
$con=mysqli_connect('localhost','root','','biblioteka');
$zap=mysqli_query($con, "select imie, nazwisko from autorzy");
$ilosc=mysqli_num_rows($zap);
echo"<ul>
";
for($i=0;$i<$ilosc;$i++)
{
           $row=mysqli_fetch_array($zap);
           echo "<li>".$row['imie'].' '.$row['nazwisko']."</li>";

}
echo"</ul>";

mysqli_close($con);
?>

Skrypt wyświetla te same wyniki co skrypt pierwszy. Tym razem została zastosowana funkcja mysqli_num_rows zliczająca rekordy, by wyznaczyć liczbę powtórzeń w pętli. 

Wyświetlanie Informacji z bazy danych w formie tabeli

<?php
$con=mysqli_connect('localhost','root','','biblioteka');
$zap=mysqli_query($con, "select imie, nazwisko from autorzy");
echo'<table border="1">';
echo '<tr><th> Imię</th><th> Nazwisko</th></tr>';
while($row=mysqli_fetch_array($zap))
{
echo "<tr><td>" .$row['imie']."</td><td>".$row['nazwisko']."</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>

Powyższy kod przedstawia imię i nazwisko autora, pobrane z bazy danych biblioteka, z tabeli autorzy. Znaczniki html odpowiedzialne za wyświetlanie informacji w formie tabeli zaznaczone są na zielono. Tabela zawarta jest w znacznikach <table> </table> (border=”1″ – oznacza obramowanie tabeli). Pojedynczy wiersz tabeli tworzymy tagami <tr></tr> (ang. table row), zaś wewnątrz wierszy definiować będziemy komórki tabeli <td></td> (ang. table drawer). Wiersz nagłówkowy utworzymy za pomocą znacznika <th></th> (table header).

Dane wyświetlone w formie tabeli