Obtención del resultado de una consulta SQL en PHP
En la lección anterior hicimos el código de prueba. Recuerdo su parte sustancial, que ejecuta la consulta a la base de datos:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Como puedes ver, después de que se realice
la consulta a la base de datos, en la variable $res
estará el resultado de esta acción. Sin embargo,
no está en la forma que necesitamos
en PHP, sino en la forma en que la base de datos
nos lo envió.
Para obtener el resultado en la forma
habitual para nosotros, es necesario usar la función
mysqli_fetch_assoc, que extrae una
fila del resultado.
Intentemos:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Como resultado, var_dump mostrará un array
con el primer empleado:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Al mismo tiempo, el primer empleado desaparecerá
de la variable $res, y la siguiente llamada
a mysqli_fetch_assoc obtendrá al siguiente
empleado.
Y así se puede llamar a nuestra función
hasta que se acaben los empleados. En cuanto
esto ocurra, la siguiente llamada a la función
devolverá false.
Intentemos:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // empleado número 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // empleado número 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // empleado número 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // empleado número 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // empleado número 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // empleado número 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // mostrará NULL - no hay más empleados
?>