Ir para conteúdo

POWERED BY:

Arquivado

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

Sasdelli Informática

While PHP

Recommended Posts

Bom dia a todos.

 

Eu tenho um while no php que me traz os resultados de duas tabelas relacionadas certo?

então fiz dentro do while um IF para trazer somente uma vez o valor do nome do condomínio e em seguida os apartamentos que tem dentro do condmínio.

o código é esse:

$ultimo_nome_predio = "";
	while ($dados = mysql_fetch_assoc($query)){
    		if ($ultimo_nome_predio != $dados['nome_predio'] ){
	           	 $nome = $dados['nome_predio']."<br />";
				 $ultimo_nome_predio = $dados['nome_predio'];
			}
				$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
			 // Criando array para passar ao smarty com os dados da consulta 
                   $dados_array[] = array('nome_predio' => $nome,
									   'nome_cliente_apartamento' => $nome_apartamento);
			}			   

 

como vocÊs podem ver, já fiz um array para passar esses dados por smarty, no php, eles mostram corretamente da forma que preciso.

mais no Foreach do Smarty, ele me traz os resultados só que ele sempre repete o nome do condominio e em seguida um apartamento.

 

mais ou menos assim:

 

Nome do Condominio 1

Apartamento do condominio 1

Nome do Condominio 1

Outro Apartamento do condominio 1

 

e na verdade ele tem que mostrar assim:

 

Nome do Condominio 1

Apartamento do condominio 1

Outro Apartamento do condominio 1

 

 

e assim sucessivamente.

 

estou passando os dados por smarty assim:

 

       $smarty->assign('dados_array', $dados_array);			
$smarty->display('relatorio_condominios_apartamentos.tpl')


---------------------- relatorio_condominios_apartamentos.tpl --------------

{$ultimo_nome_predio eq ""}
			{foreach from=$dados_array item="valor"}
				  	{if "" neq $valor.nome_predio}
						{$valor.nome_predio} <br />
						{$ultimo_nome_predio eq $valor.nome_predio}
					{/if}
						{$valor.nome_cliente_apartamento} <br />
					 <hr >
			{/foreach}

 

já até tentei fazer um if com a mesma lógica que usei no php, mais nao deu certo.

 

ele continua repetindo sempre o nome do condomínio.

 

E ai pessoal, alguem pode me ajudar?

 

Valew!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa zerar a variável $nome a cada fim de loop para garantir que ela não entre novamente.

 

Ex:

$ultimo_nome_predio = "";
$nome = ""; // <------------- adicionei isso
while ($dados = mysql_fetch_assoc($query)){
if ($ultimo_nome_predio != $dados['nome_predio'] ){
	$nome = $dados['nome_predio']."<br />";
	$ultimo_nome_predio = $dados['nome_predio'];
}
$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta 
$dados_array[] = array('nome_predio' => $nome, 'nome_cliente_apartamento' => $nome_apartamento);
$nome = ""; // <------------- adicionei isso
}

 

Faz o teste, é pra funcionar.

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.