mysql_fetch_array

(PHP 3, PHP 4 >= 4.0.0)

mysql_fetch_array --  Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu

Opis

array mysql_fetch_array ( resource wynik [, int typ_wyniku])

Zwraca tablicę zawierającą pobrany wiersz, lub FALSE jeżeli nie ma więcej wierszy w wynik.

mysql_fetch_array() jest rozszerzoną wersją mysql_fetch_row(). Oprócz zapisywania danych w indeksach numerycznych, zapisuje je też w indeksach przyporządkowujących (asocjacyjnych), używając nazw pól jako kluczy.

Jeżeli dwie lub więcej kolumn wyniku ma te same nazwy, ostatnia kolumna będzie brana pod uwagę. Dostęp do innych kolumn o tej samej nazwie jest możliwy jedynie przez indeksowanie numeryczne lub przez stworzenie aliasa. Po stworzeniu aliasa nie można już odwoływać się do danej kolumny używając jej prawdziwej nazwy (w tym przykładzie używając 'pole').

select tjeden.pole as cos tdwa.pole as cos2 from tjeden, tdwa

Godne uwagi jest to, że użycie mysql_fetch_array() nie jest znacząco wolniejsze od użycia mysql_fetch_row(), a jest bardziej funkcjonalne.

Opcjonalny drugi argument result_type w funkcji mysql_fetch_array() jest stałą i może przyjmować następujące wartości: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. Tę funkcjonalność dodano w PHP 3.0.7. Wartością domyślną jest MYSQL_BOTH.

Używając MYSQL_BOTH otrzymasz tablicę indeksowaną zarówno asocjacyjnie jak i numerycznie. MYSQL_ASSOC dostarczy tablicy indeksowanej tylko asocjacyjnie (jak w mysql_fetch_assoc()), natomiast MYSQL_NUM indeksowanej tylko numerycznie (jak w mysql_fetch_row()).

Po dalsze szczegóły patrz także mysql_fetch_row() i mysql_fetch_assoc().

Przykład 1. mysql_fetch_array()

<?php
mysql_connect("serwer","uzytkownik","haslo");
mysql_select_db("baza"); 
$result = mysql_query("select id_uzytkownika, pelna_nazwa from tabela");
while ($row = mysql_fetch_array($result)) {
    echo "id_uzytkownika: ".$row["id_uzytkownika"]."<br>\n";
    echo "id_uzytkownika: ".$row[0]."<br>\n";
    echo "pelna_nazwa: ".$row["pelna_nazwa"]."<br>\n";
    echo "pelna_nazwa: ".$row[1]."<br>\n";
}
mysql_free_result($result);
?>