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 :)