Ir para conteúdo

POWERED BY:

Arquivado

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

P3rukao

consulta mysql dentro de um laço FOR

Recommended Posts

Seguinte pessoal.... vou ser direto (±).

» eu preciso fazer uma listagem de empreendimentos (prédios) numa página... ele contém informações como, Nº de Prédios, Nº de andares q cada predio tem, e Nº de apartamentos por cada andar.

 

» Eu peguei essas informações em um form de cadastro, enquanto cadastro os empreendimentos e gerei uma string com o numero de todos os apartamentos desse prédio (101,102, 201,202, etc)...

 

» Criei uma tabela para cadastrar o numero desses apartamentos, fazendo referencia ao empreendimento;

[b]Tabela PREDIOS[/b]
campos: id_predio, predio, id_empreendimento, apartamento, disponivel

» Eu preciso, depois que essas informações estão cadastradas, exibir uma lista com todos os apartamentos, referentes a UM empreendimento que eu passo por GET para esta pagina (a de listar), e organizar esses dados por Prédio, e se possivel por andar também...

 

Seria mais ou menos assim

EMPREENDIMENTO NUMERO 1
[b]PREDIO 1[/b]
101 - 102 - 103 - 104 ...
201 - 202 - 203 - 204 ...

[b]PREDIO 2[/b]
 101 - 102 - 103 - 104 ...
201 - 202 - 203 - 204 ...
 
[b]PREDIO 3[/b]
 101 - 102 - 103 - 104 ...
201 - 202 - 203 - 204 ...

.:: O PROBLEMA ::.

eu tentei usar um SELECT dentro de um laço FOR, mas parece que não é permitido isso.. (éh ??)

 

// string de conexão e talz...
$id = $_GET['id'];

$qry = mysql_query("SELECT * FROM empreendimentos WHERE id_empreendimento = $id") or die(mysql_error());

if (mysql_num_rows($qry) > 0) //se já tiver texto adicionado, então atualiza senão...
{	
	$camposEmp = mysql_fetch_array($qry) //resgata os valores "buscados"  na consulta acima

for($i=1; $i<=$camposEmp['ntorres'];$i++)
{
	$qryBloco = mysql_query("SELECT * FROM blocos WHERE id_empreendimento = $id AND torre = $i AND disponivel = 'sim'") or die(mysql_error());
	if (mysql_num_rows($qryBloco) > 0) //se já tiver texto adicionado, então atualiza senão...
	{	
		while($camposBloco = mysql_fetch_array($qryBloco)) //resgata os valores "buscados"  na consulta acima
		{
			echo "<label style=\"display:inline-block; width:30px; text-align:center; \"><input style=\"display:block; margin:0 auto;\" type=\"checkbox\" value=\"".$camposBloco['id_empreendimento']."_".$camposBloco['torre']."_".$camposBloco['apartamento']."\" />".$camposBloco['apartamento']."</label>";
		} //end while fetch array
	}//end if numRows
	else
	{
		echo "nenhuma informação disponível no momento";
	}
}

}
else
 {

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tente substituir esse seu for que me parece estar errado, por isso

 

while($camposEmp = mysql_fetch_array($qry))

tenta isso

e apaga

essa linha aki do seu codigo

$camposEmp = mysql_fetch_array($qry) //resgata os valores "buscados"  na consulta acima

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas fazendo isso eu "mato" o código...

 

Essa instrução $camposEmp = mysql_fetch_array($qry), serve para resgatar os valores de uma outra consulta, à tebela EMPREENDIMENTOS, que contem outros dados, como por exemplo, o numero de predios, numero de andares, e de apartamentos por andar...

 

A bronca eh mais pra baixo, no laço feito na variavel $qryBloco, que eh nessa consulta que eu pego os numeros dos apartamentos para poder listar na página.

 

O que me parece eh que não se pode executar a mesma consulta (mysql_query) mais de uma vez na mesma página, tipo:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu posso et garantir que você pode usar quantos mysql_query você kiser por pagina...

Qual o erro que está aparecendo pra você?

 

Pelo menos tenta fazer akilo que eu disse...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ajeitei aqui....

Aquilo que você me disse, eh como eu te falei..... faz parte da funcionalidade da página... primeiro eu verifico se existe algum empreendimento para poder fazer alguma coisa... =/

 

O que eu fiz foi o seguinte.... no exemplo que postei, havia um erro no FOR, eu não havia terminado a estrutura dele ($i++),

ajeitei isso e fiz outra coisa... daí voltou a funcionar!!!!

 

for($i=1; $i<=$camposEmp['ntorres'];$i++)
{
	$qryBloco = mysql_query("SELECT * FROM blocos WHERE id_empreendimento = $id AND torre = $i AND disponivel = 'sim'") or die(mysql_error());
	if (mysql_num_rows($qryBloco) > 0) //se já tiver texto adicionado, então atualiza senão...
	{											
		echo "<fieldset><legend>Torre $i</legend>";
		
			while($camposBloco = mysql_fetch_array($qryBloco)) //resgata os valores "buscados"  na consulta acima
			{
				echo "<label style=\"display:inline-block; width:30px; text-align:center; \"><input style=\"display:block; margin:0 auto;\" type=\"checkbox\" value=\"".$camposBloco['id_empreendimento']."_".$camposBloco['torre']."_".$camposBloco['apartamento']."\" />".$camposBloco['apartamento']."</label>";
			} //end while fetch array
		echo "</fieldset>";
		
	}//end if numRows
	else
	{
		echo "nenhuma informação disponível no momento";
	}
}//end for

Agora eu consigo separar por PRÉDIOS, mas não por ANDAR... =/ ³

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.