Ir para conteúdo

POWERED BY:

Arquivado

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

cristianomg

While retornar conforme consulta mysql

Recommended Posts

Olá pessoal,

Estoud esenvolvendo um sistema, mas que criei uma regra que não consigo apresentarna tela para o usuário.

 

Entendimento:

Regra Geral

Quando o usuário clicar no menu de consulta apartamentos do terreo, o sistema deve apresentar todos os apartamentos que são do piso=1 , e que seu status=0 (que é ap. livre).

 

regra 01

independente de livre ou alugado, deve apresentar ao usuário todos os apartamentos ex: piso=1, Se o ap 01 com status=1 e piso=1 então vai mostrar uma imagem de porta alugada - ok eu consigo com somente if.

 

 

regra 02

independente de de livre ou alugado, deve apresentar ao usuários todos os apartamentos ex: piso=1, se o ap 01 com status=0 e piso=1 então vai mostrar uma imagem de porta livre.

 

 

 

Problema:

Como são vários e o status e o piso vão diferenciar a página a ser mostrada ao usuário, eu pensei em usar um while, onde iria iniciar com $porta=1 , incrementando a porta.

 

 

Código:

	$porta = 1;
	while( $porta <= 9 ){
	$consulta =mysql_query ("select status,valordiaria,piso from apartamento where porta = $porta and piso = 2");
	$exibe = mysql_fetch_assoc($consulta);
	if ($exibe["status"] == 0){
	echo"<a href='alugar.php'><img src='images/portaalugada.jpg'  width='160' height='240'  ></a>";
	echo "<table>"; 
	echo  "<tr><td>";
	echo "<img src='images/status_alugado.png'  width='160' height='70'  ></td></tr>";
	echo  "<tr><td>Diaria R$:</td>";
	echo "<td>".$exibe["valordiaria"]."</td></tr>";
	echo "</table>";
	}
									
         if ($exibe["status"] == 1) {
	echo"<img src='images/portalivre.jpg'  width='160' height='240'  >";
	echo "<table>"; 
	echo  "<tr><td>";
	echo "<img src='images/status_liberado.png'  width='160' height='70'  ></td></tr>";
	echo  "<tr><td>Diaria R$:</td>";
	echo "<td>".$exibe["valordiaria"]."</td></tr>";
	echo "</table>";
	}
	$porta++;
	}

Então só que minha tabela contém portas que são piso = 1 e piso=2, só que são nove apartamentos, e 5 deles estão no piso 1.

Mas o retorno mostra 09 ap. Deveria mostrar só 5 portas.

 

Não consegui ver onde não estou aplicando alguma condição, ou se minha variável esta corretamente informada no selct

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim maninho


foreach ($exibi as $value) {
  if ($value["status"] == 0){
    echo"<a href='alugar.php'><img src='images/portaalugada.jpg' width='160' height='240' ></a>";
    echo "<table>";
    echo "<tr><td>";
    echo "<img src='images/status_alugado.png' width='160' height='70' ></td></tr>";
    echo "<tr><td>Diaria R$:</td>";
    echo "<td>".$exibe["valordiaria"]."</td></tr>";
    echo "</table>";
    }elseif ($value["status"] == 1) {
    echo"<img src='images/portalivre.jpg' width='160' height='240' >";
    echo "<table>";
    echo "<tr><td>";
    echo "<img src='images/status_liberado.png' width='160' height='70' ></td></tr>";
    echo "<tr><td>Diaria R$:</td>";
    echo "<td>".$value["valordiaria"]."</td></tr>";
    echo "</table>";
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falou Marcos.

Cara deu umas mensagem estranhas, estava dando uma pesquisada quanto a mensagem. Mas mostrou os dados.

Só que temos um porém, eu não sei como funciona este Foreach, até estou lendo sobre o mesmo.

 

Mas assim, antes de apresentar o foreach, eu coloquei um While qu é para percorrer a tabela verificando somente a exemplo quando a consulta for para portas que tem piso = 2 (2ºandar).

 

Então pensei em executar o while com o foreach dentro mas acho que não está certo, tipo será que estou usando uma redundância?

 

Segue código:

$porta=1;
									
while ($porta <=9){   //a idéia do while é percorer a tabela em todas as portas pegando piso = 2
$consulta =mysql_query ("select status,valordiaria,piso,porta from apartamento where porta = '$porta' and piso = 2");
$exibe = mysql_fetch_assoc($consulta);
foreach ($exibi as $value) {
if ($value["status"] == 0){
echo"<a href='alugar.php'><img src='images/portaalugada.jpg' width='160' height='240' ></a>";
echo "<table>";
echo "<tr><td>";
echo "<img src='images/status_alugado.png' width='160' height='70' ></td></tr>";
echo "<tr><td>Diaria R$:</td>";
echo "<td>".$exibe["valordiaria"]."</td></tr>";
echo "</table>";
	}elseif ($value["status"] == 1) {
echo"<img src='images/portalivre.jpg' width='160' height='240' >";
echo "<table>";
echo "<tr><td>";
echo "<img src='images/status_liberado.png' width='160' height='70' ></td></tr>";
echo "<tr><td>Diaria R$:</td>";
echo "<td>".$value["valordiaria"]."</td></tr>";
echo "</table>";
}
}
$porta ++;  // add para a próxima porta
}

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.