mysql_fetch_array

ciao a tutti sono nuovo di php

vorrei riscire a prendere i valori di una tabella da un db e inserirli dentro un array come funziona la fuzione mysql_fetch_array ??

inviato 4 anni fa
marzar
X 0 X

Questo un uso tipico della funzione in un contesto che ti sar sicuramente famigliare:

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

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

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

mysql_free_result($result);
?>

Alla funzione mysql_fetch_array() puoi passare due parametri (uno opzionale): - il primo (obbligatorio) una risorsa, il risultato della query (ovvero della funzione mysql_query()); - il secondo (opzionale) il tipo di array che si vuole creare e quindi leggere successivamente. Questo parametro pu essere di 3 diversi tipi: MYSQL_ASSOC (quello di default), MYSQL_NUM, e MYSQL_BOTH (sono tutte e tre delle costanti). Personalmente non inserisco mai il secondo parametro, dato che mi sembra pi facile organizzare le risorse riferendomi a:

<?php
 while ($row = mysql_fetch_array($result)) {
    printf("ID: %s  Nome: %s", $row['id'], $row['name']);  
 }

?>

Un'altra informazione importante che ti posso dare che le funzioni mysql_* saranno deprecate in un futuro prossimo (magari un bel po' pi in l) e per questo per comunicare con un database (server o non) sarebbe meglio utilizzare le classi PDO o mysqli_*.

La documentazione ufficiale di php: mysql_fetch_array (troverai degli ottimi esempi specie per le differenze cambiando il secondo parametro).

risposto 4 anni fa
zeropingas
modificato 4 anni fa
<?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result)) { printf("ID: %s Nome: %s", $row['id'], $row['name']); } mysql_free_result($result); ?> scusate se magari dico una imprecisione questo codice mette il campo id e nome su due array ["id"] e ["nome"]marzar 4 anni fa
Proprio così. $row è un array associativo. Gli array associativi funzionano dando il nome della variabile e una stringa come indice (o chiave). $row['id'] conterrà al suo interno il campo id e $row['name'] il campo name (come si vede nella query). Stai attento alle eventuali lettere minuscole e maiuscole perchè le chiavi degli array associativi sono case sensitive (nel nostro caso tutto è minuscolo e quindi va bene così).zeropingas 4 anni fa
posso chiederti una cosa io in poche parole volevo fare una cosa in php che facesse questo ho due tabelle utenti su due domini diversi ho la necessità di update due valori che in una tabella nn ci so ho già mappato i due campi che mancano volevo mettere i valori delle due tabelle in due array poi confrontare i dati e metterli poi nella tabella dove nn sono presenti usavo questa funzione che mi serve per mettere i valori nei rispettivi array la strade è giusta??marzar 4 anni fa
Non credo di aver capito bene dato che non c'è nemmeno un punto in 5 righi di commento. Ho capito che ci sono due tabelle e che vorresti fare un confronto tra queste due per vedere quali elementi non sono contenuti in entrambi. Successivamente vorresti aggiungere gli elementi in più nella tabella che ne ha di meno. Queste due tabelle hanno una struttura uguale? Gli ID sono uguali (chiave primaria)? Le tabelle contengono molti dati?zeropingas 4 anni fa
ho scoperto una cosa infernale usano +tabelle per farne una uso joomla un casino faccio un passo indietro faccio le cose a mano così capisco se gli id corrispondono grazie ciaomarzar 4 anni fa
X 1 X

Il manuale di riferimento la cosa migliore da leggere. Vai qui.

La funzione restituisce gi un array dal risultato di una query fornita.

Ormai per la funzione viene sconsigliata in favore di MySqli o PDO_mysql.

risposto 4 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda