PHP - bazy danych - książka telefoniczna

DZIAŁANIE:
 

Kod:

Ewentualne Objaśnienia:

Działanie tego przykładu ja również testuje na localhoście - tzn. mam na myśli serwer (krasnal) na własnym komputerze, więc na serwerze gdzie leży kurs nie będę również tworzył baz, tabeli do tych przykładów tylko jako efekt działanie będę prezentował screeny z działania kodu - skryptu PHP na własnym komputerze. Pokażę również oczywiście kody każdego z przykładów.

Tutaj zajmujemy się odczytem danych z naszej bazy 'ksiazka' gdzie założyliśmy tabelę 'ksiazkatelefoniczna' oraz dodaliśmy jakieś rekordy - pola --> ja dodałem 2 i taki też powinien być efekt tego skryptu PHP.

Widzicie efekt działania kodu - z bazy zostały poprawnie odczytane pola oraz wyświetlona w formie tabeli, którą sobie zdefiniowaliśmy za pomocą prostych znaczników HTML.

Popatrzmy co się dzieje w naszym kodzie :
- jak już mówiłem operacje na bazie danych MySQL jak i na innych bazach opiera się na zadawaniu zapytań języka SQL, gdzie mamy przykładowo zapytanie :
SELECT * FROM ksiazkatelefoniczna LIMIT 0, 20 - jest to zapytanie SQL, które wyświetla wszystkie pola z tablicy 'ksiazkatelefoniczna' dla pierwszych 20 rekordów.
W PHP wykonując operacje na bazie danych również korzystamy z takich zapytań SQL - są one naprawdę proste, mimo iż wielu sądzi, że PHP z Bazami Danych to bardzo trudna rzecz
- a więc konkretnie, jak widzimy pierw :
mysql_connect ("localhost", "root", "krasnal") or die ("<b>Nie można połączyć się niestety z Bazą danych!!</b>"); - funkcja mysql_connect służy do nawiązania połączenie z bazą mysql. Jak widać jako jej 3 argumenty podajemy: host bazy, użytkownika oraz hasło. Bardzo często jako host wystarczy podać localhost - nawet jeśli nie pracujemy na komputerze swoim tylko na jakimś serwerze, ale nie zawsze to zadziała. Warto przy zakładaniu bazy sprawdzić swój host.
Warto zwrócić uwagę na konstrukcję : FUNKCJA (parametry) or die ("jakiś komunikat"); - oznacza to po prostu, że jeżeli wykonanie funkcji się nie powiedzie - pojawi się stosowany określony przez nas komunikat. Warto stosować to po to aby wiedzieć w razie jakiś niepowodzeń w czym tkwi problem oraz także aby w razie jakiś usterek poinformować innych gdzie tkwi problem.
- mysql_select_db ("ksiazka") or die ("<b>Nie można połączyć się z bazą ksiazka!</b>"); - mysql_select_db - funkcja do wyboru bazy danych, jak widać jako parametr podajmy nazwę bazy oraz ponownie używamy konstrukcji "or die"
- $wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;") or die ("<b>Wystąpił błąd w pytaniu!</b>"); - tutaj korzystamy z funkcji mysql_query - która umożliwia nam zadawanie pytań SQL do bazy, zobaczcie na taką definicję, znalazłem ją w necie i bardzo mi się podoba :
mysql_query() - wysyła zapytanie do aktywnej bazy na serwerze skojarzonym z podanym identyfikatorem połączenia. Jeżeli identyfikator połączenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie. Jeżeli żadne połączenie nie jest otwarte, podjęta zostanie próba ustanowienia go, poprzez wywołanie mysql_connect() bez argumentów.
Jak widzimy w naszym przykładzie zmiennej $wynik nadajmy zapytanie SQL (poprzez mysql_guery) SELECT * FROM ksiazkatelefoniczna - bez limitu jak w poprzednim przykładzie.
- jedziemy dalej, tutaj mamy jedną z popularnych metod odczytu zapytania, które właśnie wykoanliśmy, kod :
while ($rekord = mysql_fetch_assoc($wynik))
{
$nr = $rekord['nr'];
$imie = $rekord['imie'];
$nazwisko = $rekord['nazwisko'];
$telefon = $rekord['telefon'];
print ("<TR><TD>$imie</TD><TD>$nazwisko</TD>");
print ("<TD>$telefon</TD></TR>");
}
Mamy tutaj pętle while - gdzie zmiennej $rekord przypisywana jest wartość - wynik działania funkcji mysql_fetch_assoc jest to funkcja która zwraca tablicę zawierającą pobrany wiersz, lub FALSE jeżeli nie ma więcej wierszy w wynik. Więc pętla będzie działać dotąd dopóki w zmiennej $wynik będą jeszcze dane pobranie wcześniej/odczytane z tabeli ksiazkatelefoniczna, bazy ksiazka.
Jak widać dalej po prostu nadajmy zmiennym $nr, $imie itd wartość zmiennej $rekord o indeksach, które określamy takimi nazwami jak nazwy kolumn tabeli, które zdefiniowaliśmy zakładając bazę danych ( pola w tablicy ksiazkatelefoniczna).

Proste prawda :)