skanuj0351 (2)

skanuj0351 (2)



366 PHP i MySQL dla każdego

Zapytania typu SELECT

W przypadku zapytań typu SELECT funkcja mysql_query zwraca identyfikator zasobów, który może zostać następnie użyty do odczytu danych zwróconych przez zapytanie. Istnieje kilka funkcji odczytujących takie dane, najpopularniejsze to mysql_fetch_row i mysql_fetch_array. Pomocna może być także funkcja mysql_num_rows, która pozwala na określenie, ile wierszy znajduje się w wynikach zapytania.

Każde wywołanie funkcji mysql_fetch_row zwraca kolejny wiersz z tabeli będącej wynikiem zapytania. Dane zwracane są w tablicy, w której kolejne komórki zawierają dane z kolejnych kolumn tabeli wynikowej. Jeśli zostaną odczytane wszystkie wiersze, funkcja zwraca wartość false. Oznacza to, że wszystkie wyniki zapytania mogą zostać odczytane w pętli while o schematycznej postaci:

while($arr - mysql_fetch_row($result)){

//instrukcje przetwarzające wyniki

}

gdzie arr to tablica, do której będą zapisywane dane z kolejnych wierszy, a result — zmienna zawierająca identyfikator zasobów zwrócony przez funkcję mysq1_query. Drugi wariant to użycie funkcji rnysqł_num_rows do pobrania liczby wierszy z tabeli wynikowej i pętli typu for. Taka konstrukcja miałaby schematyczną postać:

$count - mysql_num_rows($result): for($i - 0: $i < Scount: $i++){

$arr - mysql_fetch_row($result):

//instrukcje przetwarzające wyniki

}

Funkcja mysql_fetch_array działa podobnie, zwraca jednak tabelę asocjacyjną, w której kluczami są nazwy kolumn tabeli zwróconej przez zapytanie.

Zobaczmy najpierw, jak w praktyce odczytać dane z wybranej tabeli, wykorzystując do tego celu funkcję mysql_fetch_row. Niech będzie to wykorzystywana w poprzednim rozdziale tabela Książki zbazy Księgarnia. Odpowiedni kod jest widoczny na listingu 13.4.

Listing 13.4. Odczytanie zawartości tabeli_

<htm1>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> </head>

<body>

<?php

if (!$db_lnk - @mysql_connect(”localhost". “php". "test")){

echo('Wystąpił błąd podczas próby połączenia z serwerem MySQI____<BR>'):

exit;

}

i f(!@mysql_select_db('księgarnia’)) { echoCWystąpił błąd podczas wyboru bazy danych: Ksiegarnia<8R>'): 0mysqł_closeO; exit:

}


Wyszukiwarka

Podobne podstrony:
skanuj0300 (2) 314 PHP i MySQL dla każdego Rysunek 11.5. mysql> SELECT tytuł, imię, nazwisko, isb
skanuj0327 (2) 342 PHP i MySQL dla każdego ♦    Id — typu INTEGER, przechowujące unik
skanuj0329 (2) 344 PHP i MySQL dla każdego ♦    Nr domu — typu VARCHAR, przechowującą
skanuj0343 (2) 358 PHP i MySQL dla każdegc mysql> SELECT Autorzy.Nazwa AS Autor, ->
skanuj0411 (3) 428 PHP i MySQL dla każdego ♦    Userld — typu INTEGER, będąca kluczem
skanuj0298 (2) 312 PHP i MySQL dla każdeg:Złączenie typu LEFT JOIN Złączenie typu LEFT JOIN pozwala

więcej podobnych podstron