Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaohenrique010

Não consigo entender a lógica de um código PHP

Recommended Posts

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).

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.