Forum und email

mysql_fetch_array

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_fetch_array — Haal een resultaat rij op als een associatieve array, een numerieke array, of beiden

Beschrijving

array mysql_fetch_array ( resource $result [, int $ result_type ] )

Haalt een array op die correspondeert met de opgehaalde rij, of FALSE als er geen rijen meer zijn.

mysql_fetch_array() is een uitgebreide versie van mysql_fetch_row(). Als toevoeging op het opslaan van de data in numerieke indices van de resultaat array, slaat hij de data ook op in associatieve indices, waarbij de veldnamen gebruikt worden als keys.

Als twee of meer kolommmen van het resultaat dezelfde veldnaam hebben heeft de laatst kolom precedentie. Om toegang te krijgen tot andere kolommen met dezelfde naam, moet je de numerieke index van de kolom gebruiken of een alias maken voor de kolom. Voor gealiasde kolommen kun je geen toegang krijgen tot de inhoud met de originele kolom naam (door 'field' te gebruiken in dit voorbeeld).

Example#1 Query met dubbele veldnamen

select table1.field as foo table2.field as bar from table1, table2

Belangrijk is het door te hebben dat mysql_fetch_array() is niet significant langzamer dan het gebruik van mysql_fetch_row(), terwijl het een duidelijke toegevoegde waarde heeft.

Het optionele tweede argument result_type in mysql_fetch_array() is een constante en kan de volgende waarden aannemen: MYSQL_ASSOC, MYSQL_NUM, en MYSQL_BOTH. Deze feature werd toegevoegd in PHP 3.0.7. MYSQL_BOTH is de default voor deze parameter.

Door MYSQL_BOTH te gebruiken, zul je een array met zowel associatieve als numerieke indices terug krijgen. Met MYSQL_ASSOC krijg je alleen associatieve indices (zoals bij mysql_fetch_assoc()), en met MYSQL_NUM krijg je alleen numerieke indices (zoals mysql_fetch_row()).

Example#2 mysql_fetch_array met MYSQL_NUM

<?php
    mysql_connect
("localhost""mysql_user""mysql_password") or
        die(
"Kan geen verbinding maken: " mysql_error());
    
mysql_select_db("mydb");

    
$result mysql_query("SELECT id, name FROM mytable");

    while (
$row mysql_fetch_array($resultMYSQL_NUM)) {
        
printf ("ID: %s  Name: %s"$row[0], $row[1]);
    }

    
mysql_free_result($result);
?>

Example#3 mysql_fetch_array met MYSQL_ASSOC

<?php
    mysql_connect
("localhost""mysql_user""mysql_password") or
        die(
"Kan geen verbinding maken: " mysql_error());
    
mysql_select_db("mydb");

    
$result mysql_query("SELECT id, name FROM mytable");

    while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) {
        
printf ("ID: %s  Name: %s"$row["id"], $row["name"]);
    }

    
mysql_free_result($result);
?>

Example#4 mysql_fetch_array met MYSQL_BOTH

<?php
    mysql_connect
("localhost""mysql_user""mysql_password") or
        die(
"Kan geen verbinding maken: " mysql_error());
    
mysql_select_db("mydb");

    
$result mysql_query("SELECT id, name FROM mytable");

    while (
$row mysql_fetch_array($resultMYSQL_BOTH)) {
        
printf ("ID: %s  Name: %s"$row[0], $row["name"]);
    }

    
mysql_free_result($result);
?>

Voor verder details, zie ook mysql_fetch_row() en mysql_fetch_assoc().