mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array --  Kérés egy sorát adja vissza (tetszőleges) tömb formájában

Leírás

array mysql_fetch_array ( resource result [, int result_type] )

Az eredmény következő sorával tér vissza tömb formájában, vagy FALSE-sal, ha már nincs több sor.

A mysql_fetch_array() függvény a mysql_fetch_row() függvény kiterjesztett változata. Ráadásul az eredményt nem csak számokkal indexelt tömbbe írja, hanem asszociatív tömbbe is, ahol a mező nevei a kulcsok.

Ha az eredmény több sorának ugyanaz a neve, akkor a később szereplő oszlop marad meg. Ha szeretnéd az összes mezőt elérni ilyenkor is, akkor számmal indexeld a tömböt, vagy az SQL parancsban kérj aliast az oszlopra. Az alias-olt [ez mi magyarul?] oszlopok tartalmát nem tudod az oszlopok eredeti nevével elérni (pl. itt a 'field' használatával).

Példa 1. Kérés két azonos nevű mezővel

SELECT tabla1.mezo AS ize tabla2.mezo AS bigyo FROM tabla1, tabla2

Jó tudni, hogy a mysql_fetch_array() függvény használata nem jelentősen lassabb a mysql_fetch_row() használatánál, de a kapott eredmény feldolgozása jóval kényelmesebb.

A mysql_fetch_array() függvény elhagyható result_type paramétere a következő lehet: MYSQL_ASSOC, MYSQL_NUM, vagy MYSQL_BOTH. Ez a lehetőség a PHP 3.0.7-es változatában került a nyelvbe. A paraméter alapértelmezett értéke a MYSQL_BOTH.

A MYSQL_BOTH használatával egy olyan tömböt kapsz, amelyben az elemek számmal és karakterlánccal is indexelve vannak. MYSQL_ASSOC értékkel használva csak asszociatív tömböt kapsz (mint a mysql_fetch_assoc() függvénnyel), MYSQL_NUM értékkel meghívva a fügvényt számozott indexű tömböt kapsz (mint a mysql_fetch_row() függvénnyel).

Megjegyzés: Az ezen függvény által visszaadott mezőnevek kis-nagybetű helyesek.

Megjegyzés: A tárgyalt függvény a NULL értékű adatbázis mezőket ap PHP NULL értékével tölti fel.

Példa 2. mysql_fetch_array() MYSQL_NUM-al

<?php
mysql_connect
("localhost", "mysql_felhasznalo", "mysql_jelszo") or
    die(
"Kapcsolódás sikertelen: " . mysql_error());
mysql_select_db("adatbazis");

$eredmeny = mysql_query("SELECT azon, nev FROM tabla");

while (
$sor = mysql_fetch_array($eredmeny, MYSQL_NUM)) {
    
printf("Azonosító: %s  Név: %s", $sor[0], $sor[1]);  
}

mysql_free_result($eredmeny);
?>

Példa 3. mysql_fetch_array() MYSQL_ASSOC-al

<?php
mysql_connect
("localhost", "mysql_felhasznalo", "mysql_jelszo") or
    die(
"Kapcsolódás sikertelen: " . mysql_error());
mysql_select_db("adatbazis");

$eredmeny = mysql_query("SELECT azon, nev FROM tabla");

while (
$sor = mysql_fetch_array($eredmeny, MYSQL_ASSOC)) {
    
printf("Azonosító: %s  Név: %s", $sor["azon"], $sor["nev"]);
}

mysql_free_result($eredmeny);
?>

Példa 4. mysql_fetch_array() MYSQL_BOTH-al

<?php
mysql_connect
("localhost", "mysql_felhasznalo", "mysql_jelszo") or
    die(
"Kapcsolódás sikertelen: " . mysql_error());
mysql_select_db("adatbazis");

$eredmeny = mysql_query("SELECT azon, nev FROM tabla");

while (
$sor = mysql_fetch_array($eredmeny, MYSQL_BOTH)) {
    
printf("Azonosító: %s  Név: %s", $sor[0], $sor["nev"]);
}

mysql_free_result($eredmeny);
?>

Lásd még a mysql_fetch_row(), mysql_fetch_assoc(), mysql_data_seek() és mysql_query() függvényeket!