Ottenere il risultato di una query SQL in PHP
Nella lezione precedente abbiamo creato il codice di test. Ricordo la sua parte essenziale, che esegue una query al database:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Come puoi vedere, dopo che la query al database
è stata eseguita, nella variabile $res
ci sarà il risultato di questa azione. Tuttavia,
non è nella forma di cui abbiamo bisogno
in PHP, ma nella forma in cui ci è stata inviata
dal database.
Per ottenere il risultato nella forma a noi
consueta, è necessario utilizzare la funzione
mysqli_fetch_assoc, che estrae dal
risultato una riga alla volta.
Proviamo:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Come risultato, var_dump mostrerà un array
con il primo impiegato:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
In questo caso, il primo impiegato scomparirà
dalla variabile $res, e la successiva chiamata
di mysqli_fetch_assoc
otterrà già il prossimo impiegato.
E così si può chiamare la nostra funzione
finché gli impiegati non finiscono. Non appena
ciò accade, la successiva chiamata della
funzione restituirà false.
Proviamo:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // impiegato numero 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // impiegato numero 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // impiegato numero 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // impiegato numero 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // impiegato numero 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // impiegato numero 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // mostrerà NULL - gli impiegati sono finiti
?>