mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array --  Carica una riga del risultato come un array associativo, un array numerico o entrambi.

Descrizione

array mysql_fetch_array ( resource risultato [, int tipo_risultato])

Restituisce un array che corrisponde alla riga caricata o FALSE se non ci sono più righe.

mysql_fetch_array() è una versione estesa di mysql_fetch_row(). Oltre a memorizzare i dati del risultato in array con indice numerico, questa li memorizza anche con indici associativi usando i nomi dei campi come chiavi.

Se due o più colonne del risultato hanno gli stessi nomi di campo, l'ultima colonna avrà la precedenza. Per accedere alle altre colonne con lo stesso nome, si deve usare l'indice numerico della colonna o farne un alias. Per le colonne-alias, non si può accedere al contenuto con il nome della colonna originale (in questo esempio si usa 'campo').

Esempio 1. Query con nomi di campo duplicati

SELECT tabella1.campo as foo tabella2.campo as bar from tabella1, tabella2

Una cosa importante da notare è che l'uso di mysql_fetch_array() non è significativamente più lento dell'uso di mysql_fetch_row(); questo fornisce un significativo valore aggiunto.

Il secondo argomento opzionale tipo_risultato in mysql_fetch_array() è una costante e può assumere i seguenti valori: MYSQL_ASSOC, MYSQL_NUM e MYSQL_BOTH. Questa caratteristica è stata aggiunta nel PHP 3.0.7. MYSQL_BOTH è il valore predefinito per questo argomento.

Usando MYSQL_BOTH, si ottiene un array con entrambe gli indici (associativo e numerico). Usando MYSQL_ASSOC, si ottengono solo gli indici associativi (stesso funzionamento di mysql_fetch_assoc()), usando MYSQL_NUM, si ottengono solo gli indici numerici (stesso funzionamento di mysql_fetch_row()).

Nota: I nomi dei campi restituiti da questa funzione sono case-sensitive.

Esempio 2. mysql_fetch_array() con MYSQL_NUM

<?php
mysql_connect
("localhost", "utente_mysql", "password_mysql") or
    die(
"Connessione non riuscita: " . mysql_error());
mysql_select_db("mio_db");

$risultato = mysql_query("SELECT id, nome FROM mia_tabella");

while (
$riga = mysql_fetch_array($risultato, MYSQL_NUM)) {
    
printf ("ID: %s  Nome: %s", $riga[0], $riga[1]);
}

mysql_free_result($risultato);
?>

Esempio 3. mysql_fetch_array() con MYSQL_ASSOC

<?php
mysql_connect
("localhost", "utente_mysql", "password_mysql") or
    die(
"Connessione non riuscita: " . mysql_error());
mysql_select_db("mio_db");

$risultato = mysql_query("SELECT id, nome FROM mia_tabella");

while (
$riga = mysql_fetch_array($risultato, MYSQL_ASSOC)) {
    
printf ("ID: %s  Nome: %s", $riga["id"], $riga["name"]);
}

mysql_free_result($risultato);
?>

Esempio 4. mysql_fetch_array() con MYSQL_BOTH

<?php
mysql_connect
("localhost", "utente_mysql", "password_mysql") or
    die(
"Connessione non riuscita: " . mysql_error());
mysql_select_db("mio_db");

$risultato = mysql_query("SELECT id, nome FROM mia_tabella");

while (
$riga = mysql_fetch_array($risultato, MYSQL_BOTH)) {
    
printf ("ID: %s  Nome: %s", $riga[0], $riga["nome"]);
}

mysql_free_result($risultato);
?>

Per maggiori dettagli, vedere anche mysql_fetch_row() e mysql_fetch_assoc().