PHP: funzione per creare un array di risultati da query
29/05/2012Nel programmare l'estrazione di dati da database attraverso l'invio di query è l'operazione preliminare da svolgere ogni volta che ci serve estrarre un contenuto dinamico.
I nostri script sono pieni di ripetitivi passaggi attraverso gli step standard di definizione della query, invio della query, costruzione dell'array dei risultati.
Costruendo una funzione siamo in grado di 'risparmiarci' la scrittura di questi step ad ogni interrogazione, in questo modo:
function sqlEstrai($query) {
$numCampi = mysql_num_fields($query);
$a = 0;
while($row = mysql_fetch_array($query)) {
$b = 0;
while($b < $numCampi) {
$campoNome = mysql_field_name($query, $b);
$array[$a][$campoNome] = $row["$campoNome"];
$b++;
}
$a++;
$b = 0;
}
return $array;
}
costruita la funzione per estrarre i dati che ci interessa basterà definire la query e richiamare la funzione (nel codice di esempio facciamo stampare l'array ricavato per verificarne il risultato)
$query = mysql_query("SELECT * FROM utenti");
$array = sqlEstrai($query);
echo "<pre>";
print_r($array);
echo "</pre>";
che darà, ad esempio, questo risultato
Array ( [0] => Array ( [id] => 1 [email] => pippo@dom.it [password] => d8f426b9f4ae274456971ee25b09d872 [ruolo] => adm ) [1] => Array ( [id] => 2 [email] => pluto@dev.it [password] => 123870be274f6c49b3e31a0c6728957f [ruolo] => adm ) [2] => Array ( [id] => 3 [email] => direttore@giornalino.it [password] => d8f426b9f4ae2746e6971ee25b09d872 [ruolo] => ute ) [3] => Array ( [id] => 4 [email] => paperino@iol.it [password] => 1f3456be274f6c49b3e31a0c6728957f [ruolo] => ute [regione] => ) [4] => Array ( [id] => 5 [email] => clarabella@net.com [password] => ab3870be274f6c49b3e31a0c6728957f [ruolo] => ute ) [5] => Array ( [id] => 6 [email] => qui@topolinia.net [password] => cl3870be274f6c49b3e31a0c6728957f [ruolo] => adm_parz ) [6] => Array ( [id] => 7 [email] => qui@topolinia.net [password] => xyz870be274f6c49b3e31a0c6728957f [ruolo] => ute_sec_liv ) )