Obtendo o resultado de uma consulta SQL em PHP
Na lição anterior, criamos um código de teste. Vou relembrar a parte essencial dele, que executa a consulta ao banco de dados:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Como você pode ver, após a consulta ao banco de dados ser realizada,
a variável $res
conterá o resultado dessa ação. No entanto,
ele não está na forma que precisamos
em PHP, mas sim na forma em que o banco de dados
no-lo enviou.
Para obter o resultado na forma a que estamos
habituados, é necessário usar a função
mysqli_fetch_assoc, que extrai uma
linha do resultado.
Vamos tentar:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Como resultado, var_dump exibirá um array
com o primeiro funcionário:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Com isso, o primeiro funcionário desaparecerá da variável
$res, e a próxima chamada de mysqli_fetch_assoc
obterá o próximo funcionário.
E assim podemos chamar nossa função
até que os funcionários acabem. Assim
que isso acontecer, a próxima chamada
da função retornará false.
Vamos tentar:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // funcionário número 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // funcionário número 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // funcionário número 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // funcionário número 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // funcionário número 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // funcionário número 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // exibirá NULL - os funcionários acabaram
?>