Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não consigo entender a lógica desse script (tudo está funcionando, essa é só uma parte do código)
<?php
$querys = mysql_query("SELECT * FROM users ORDER BY id DESC");
while($row = mysql_fetch_array($querys)) {
echo $row['email']."<br/>";
}
?>
Primeiro defino uma variável que faz uma consulta, selecionando usuários por ordem decrescente de id.
Só que na parte do while eu não consigo entender. Alguém poderia me explicar a lógica?
Eu nem sequer defini a variável $row anteriormente.
Lembrando que o script funciona, mas eu não sei de que forma ele atua (por que ele funciona).
Suponha a seguinte tabela [inline]pessoas[/inline] com 3 entradas:
+----+----------+
| id | nome |
+----+----------+
| 1 | joao |
| 2 | pedro |
| 3 | maria |
+----+----------+
Então você faz:
$query = mysql_query("SELECT * FROM pessoas ORDER BY id");
cada vez que você chamar [inline]mysql_fetch_array[/inline] na variável [inline]$query[/inline] ele vai te retornar um array contendo os dados da linha seguinte.
$p1 = mysql_fetch_array($query); // p1 agora é um array da primeira linha
// p1['id'] = 1
// p1['nome'] = joao
// continuamos chamando fetch_array
$p2 = mysql_fetch_array($query); // p2 agora é "pedro"
$p3 = mysql_fetch_array($query); // p3 agora é "maria"
// p4 vai ser "false" porque não há mais linhas em $query
$p4 = mysql_fetch_array($query);
Então o que o código quer dizer é: Enquanto houver linhas em [inline]$querys[/inline] guarde essa linha em [inline]$row[/inline] e execute o código dentro do while.