Ciao a tutti
Da pochi giorni mi sono interessato al funzionamento dei database (MySQL) e il modo con cui interagire con essi (PHP).
Ma non riesco proprio a capire, aimè, come funzionano i fetching.
Sul mio libro di PHP c'è scritto: "La funzione MySQL_fetch_array() resistuisce un array associativo in cui i nomi dei campi fungono da chiavi". Successivamente il libro riporta un esempio che si trova un pò da per tutto qui nel web:
codice:
1<?php
2 // Stabiliamo una connessione MySQL
3 mysql_connect("localhost", "root", "") or die(mysql_error());
4 mysql_select_db("test") or die(mysql_error());
5
6 // Eseguiamo la SELECT sulla tabella 'impiegati'
7 $result = mysql_query("SELECT * FROM impiegati")
8 or die(mysql_error());
9
10 // eseguiamo la nostra 'mysql_fetch_array' in un ciclo 'while'
11 while($row = mysql_fetch_array($result)){
12 // Visualizziamo sulla pagina il contenuto della riga letta
13 echo "Nome: ".$row['nome']." - Livello: ".$row['livello']."
";
14 }
15 ?>
Ecco qui non riesco proprio a capire. Nel momento in cui utilizzo la funzione MySQL_query, la variabile $result diventa ora un array , ma cosa contiene al suo interno? In quanto (parole del libro): "La funzione MySQL_query restituisce un array associativo contenente il risultato della query". Quindi, anche se non ho capito la variabile $result cosa contiene al suo interno, so che è un array. Tramite l'istruzione $row = mysql_fetch_array($result), la funzione mysql_fetch_array cosa assume da $result? e poi, visto che result già è un array, la funzione mysql_fetch_array crea un array di un array? Non capisco proprio..e la mia confusione aumenta quando non riesco a capire come possa analizzare una riga all'altra senza incrementare result che, almeno ho pensato, dovrebbe avere gli indici della riga della tabella. Insomma..con l'istruzione while($row = mysql_fetch_array($result)) non analizza sempre e solo lo stesso indice? sempre lo stesso elemento insomma? come fa ad andare "avanti" nell'analisi se non viene incrementato nulla? Chiedo scusa per la grande confusione che ho fatto ma realmente non riesco a capire come funzioni. Il libro non mi aiuta e i siti in giro non dicono gran che. Qualcuno può, cortesemente e con grande pazienza, darmi una mano e spiegarmi con chiarezza questo procedimenti?
Grazie mille in anticipo e scusatemi della perdita di tempo.
Marco