While dentro de outro, quando e como fazer?

17/05/2014

um pouco dificil para meu entendimento, mas quando fazer um while dentro de outro?(melhor pratica) e como fazer?

PHP

Mauricio Padua

Melhor resposta

24/06/2014

Mauricio Padua

Explicando no primeiro select

$queryEstado = mysql_query("SELECT idEstado FROM estado");

ele pega todos os estados e armazena na variável ------> $queryEstado

Quando eu jogo no segundo eu seleciono todas as cidades daquele estados, 1 a 1 utilizando o while para fazer o loop, ele só vai para o próximo estado após terminar todas as cidades.

WHILE($resEstado = mysql_fetch_array(--------> $queryEStado)){

//selecionando todas as cidades do primeiro estado
$queryCidade = mysql_query("SELECT NomeCidade FROM cidade WHERE estado_id_estado = '".$resEstado['idEstado']."'");

echo $resEstado["NomedoEstado"]."<br />"; // vai exibir o nome do estado

WHILE($resCidade = mysql_fetch_array($queryCidade)) {

echo $resCidade['NomeCidade']."<br />";

}

Assim quando executar vai exibir

Rio de janeiro

todas as cidades do rio de janeiro

São Paulo

todas as cidade de São Paulo

Espero ter ajudado, se entendeu da um joinha :)

Eduardo Silva

Responder Citar

Outras Respostas

06/06/2014

Burg

Boa noite,

O loop while e processado ate uma condição ser verdadeira ou falsa, sabendo disso pode realizar eles conforme sua necessidade(um dentro de outro ou fora).

exemplo :


$contador = 0;

while($contador < 10){

//Aqui vai o conteudo

}


abç.
Responder Citar

07/06/2014

Mauricio Padua

certo, mas poderia me dizer uma funcionalidade em que é utilizado? qualquer exemplo.
Responder Citar

08/06/2014

Marcio Araujo

pense da seguinte forma, se existir alguma funcionalidade que dependa da outra, um while dentro de outro.
Responder Citar

19/06/2014

Mauricio Padua

certo Marcio, se abstrair as vezes não é facil.
Responder Citar

20/06/2014

Marisiana

Um exemplo que pode ser "mais comum" é a utilização de laços de repetição para popular arrays (matrizes).
Responder Citar

20/06/2014

Mauricio Padua

putz Marisiana, hehehe, fiquei confuso agora. mas popular arrays em um sistema "real", qual seria a finalidade, guardar dados por um tempo? a ideia é essa?
Responder Citar

22/06/2014

Marisiana

É apenas um exemplo no qual se utiliza um laço de repetição dentro de outro, que responde a tua pergunta de abertura do tópico...
um pouco dificil para meu entendimento, mas quando fazer um while dentro de outro?(melhor pratica) e como fazer?

Citei esse, pois arrays aprende-se em lógica de programação então, achei que facilitaria o entendimento...
Responder Citar

24/06/2014

William (devwilliam)

Olá Mauricio, um exemplo simples de uso para 2 loops, tenho alguns sistemas em PHP que fazem importação de dados contidos em planilhas do excel para um determinado banco de dados, para isso tenho uma classe que entre outras funcionalidades possui um método que usa um loop para percorrer todas as linhas da planilha e dentro desse loop tem outro que percorre todas as colunas da linha que está sendo lida, funcionamento semelhante ao plano cartesiano.
Responder Citar

24/06/2014

Eduardo Silva

Exemplo de while dentro de while.

$queryEstado = mysql_query("SELECT idEstado FROM estado");


WHILE($resEstado = mysql_fetch_array($queryEStado)){

$queryCidade = mysql_query("SELECT NomeCidade FROM cidade WHERE estado_id_estado = '".$resEstado['idEstado']."'");

WHILE($resCidade = mysql_fetch_array($queryCidade)) {

echo $resCidade['NomeCidade'];

} // PRIMEIRO WHILE
} // SEGUNDO WHILE
Responder Citar

24/06/2014

Lucas Rocha Currículo

Outra função é de extrair dados de um DB..

	<html>
	<head>
	<title>Extraindo dados de um  Banco de Dados</title>
	</head>
	<body>

	<?php
	// Conexão com o Banco de Dados
	mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

	// Seleciona o Banco de Dados
	mysql_select_db("mydatabase") or die(mysql_error());

	//query SQL
	$strSQL = "SELECT * FROM people";

	// Executa a query (o recordset $rs contém o resultado da query)
	$rs = mysql_query($strSQL);
	
	// Loop pelo recordset $rs
	// Cada linha vai para um array ($row) usando mysql_fetch_array
	while($row = mysql_fetch_array($rs)) {

	   // Escreve o valor da coluna FirstName (que está no array $row)
	  echo $row['FirstName'] . "<br />";

	  }

	// Encerra a conexão
	mysql_close();
	?>
	</body>
	</html>
Responder Citar

24/06/2014

Mauricio Padua

É apenas um exemplo no qual se utiliza um laço de repetição dentro de outro, que responde a tua pergunta de abertura do tópico... [quote]um pouco dificil para meu entendimento, mas quando fazer um while dentro de outro?(melhor pratica) e como fazer?

Citei esse, pois arrays aprende-se em lógica de programação então, achei que facilitaria o entendimento...[/quote]

não esquenta, te agradeço
abraço.
Responder Citar

24/06/2014

Mauricio Padua

Para o pessoal que me passou infos e codigos, agradeço mesmo.

Willian, notei algo a mais de programação e matematica pura na sua explicação, hehe, mas entendi.

Eduardo, entendi a base do codigo mas não entendi bem o que ele faz.

Lucas, ele extrai e imprime na tela, é isso?
Responder Citar

24/06/2014

Marisiana

[quote]É apenas um exemplo no qual se utiliza um laço de repetição dentro de outro, que responde a tua pergunta de abertura do tópico... [quote]um pouco dificil para meu entendimento, mas quando fazer um while dentro de outro?(melhor pratica) e como fazer?

Citei esse, pois arrays aprende-se em lógica de programação então, achei que facilitaria o entendimento...[/quote]

não esquenta, te agradeço
abraço.[/quote]

Por nada! =)
Responder Citar

24/06/2014

Mauricio Padua

100% entendido!!! show!!!
Responder Citar

24/06/2014

William (devwilliam)

Finalizando tópico!
Responder Citar