While dentro de outro, quando e como fazer?

PHP

17/05/2014

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

Mauricio Padua

Curtidas 0

Melhor post

Eduardo Silva

Eduardo Silva

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 :)
GOSTEI 3

Mais Respostas

Lucas Burg

Lucas Burg

17/05/2014

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ç.
GOSTEI 0
Mauricio Padua

Mauricio Padua

17/05/2014

certo, mas poderia me dizer uma funcionalidade em que é utilizado? qualquer exemplo.
GOSTEI 0
Marcio Araujo

Marcio Araujo

17/05/2014

pense da seguinte forma, se existir alguma funcionalidade que dependa da outra, um while dentro de outro.
GOSTEI 0
Mauricio Padua

Mauricio Padua

17/05/2014

certo Marcio, se abstrair as vezes não é facil.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

17/05/2014

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

Mauricio Padua

17/05/2014

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?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

17/05/2014

É 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...
GOSTEI 0
William

William

17/05/2014

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.
GOSTEI 0
Eduardo Silva

Eduardo Silva

17/05/2014

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
GOSTEI 1
Lucas Rocha

Lucas Rocha

17/05/2014

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>
GOSTEI 0
Mauricio Padua

Mauricio Padua

17/05/2014

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


não esquenta, te agradeço
abraço.
GOSTEI 0
Mauricio Padua

Mauricio Padua

17/05/2014

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?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

17/05/2014

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


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


Por nada! =)
GOSTEI 0
Mauricio Padua

Mauricio Padua

17/05/2014

100% entendido!!! show!!!
GOSTEI 1
William

William

17/05/2014

Finalizando tópico!
GOSTEI 0
POSTAR