Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal;
Já tem alguns dias que venho perdendo a cabeça rsrs não consigo fazer um **if** e **else** em um loop foreach meu código:
<?php if (isset($list_pedidos_abertos)){ foreach($list_pedidos_abertos as $row) : ?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php endforeach; } ?>
Eu preciso que quando não tiver nenhum registro ele mostre a mensagem **"Nenhum registro encontrado", **tentei fazer assim mas não deu certo ele não retorna "0" na contagem:
<?php
$cont = 0;
foreach($list_pedidos_abertos as $row){
$cont = $cont +1;
if($cont == 0){
echo 'nenhum registro encontrado';
}else{
?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php
}
}
?>
o que eu estou fazendo de errado ? Grato pela ajuda ;)Se a variavel $list_pedidos_abertos é recebida de uma consulta do BD, o jeito certo seria assim:
<?php
if($list_pedidos_abertos == true)
{
foreach($list_pedidos_abertos as $row)
{
?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php
}
}else{
echo 'Nenhum registro encontrado.';
}
?>>
3 horas atrás, BrunoMs disse:
O que está errado é o $cont que você está utilizando, você tem que contar a quantidade de conteúdo dentro de $list_pedidos_aberto, fazer uma verificação com empty ou qualquer outra função pra verificar o conteúdo dentro de $list_pedidos_abertos, exemplo:
<?php
foreach($list_pedidos_abertos as $row){
if(empty($list_pedidos_abertos)){
echo 'nenhum registro encontrado';
}else{
?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php
}
}
?>
Nesse exemplo aí que te dei ele verifica se $list_pedidos_aberto está vazio (empty($list_pedidos_abertos)), se tiver vazio ele dispara a mensagem de nenhum registro encontrado, se não tiver vazio ele segue normalmente o bloco else.
Da forma como você estava fazendo o contador $cont já adicionava +1 logo no início do script e por isso no seus testes não aparecia a mensagem "nenhum registro encontrado" pq o resultado de $cont já é 1 antes de chegar no if que verificava se $list_pedidos_abertos era 0 ou não.
Entendi agora o que eu estava fazendo de errado... eu estava colocando + 1 bem no inicio ai não ia dar 0 nunca. mas com o seu exemplo de codigo não retornou a mensagem, consegui a solução com o exemplo do nosso amigo Luiz gustavo fazendo isso:
<?php
if($list_pedidos_abertos == true){
foreach($list_pedidos_abertos as $row){
?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php
}
}else{
echo 'Nenhum registro encontrado.';
}
?>
Muito obrigado pela explicação!
>
2 horas atrás, Luiz Gustavo Costa Ceolin disse:
Se a variavel $list_pedidos_abertos é recebida de uma consulta do BD, o jeito certo seria assim:
<?php
if($list_pedidos_abertos == true)
{
foreach($list_pedidos_abertos as $row)
{
?>
<div class="espera_item">
<?php echo $row->html?>
</div>
<?php
}
}else{
echo 'Nenhum registro encontrado.';
}
?>
Luiz, muito obrigado essa é a solução grande abraço!
O que está errado é o $cont que você está utilizando, você tem que contar a quantidade de conteúdo dentro de $list_pedidos_aberto, fazer uma verificação com empty ou qualquer outra função pra verificar o conteúdo dentro de $list_pedidos_abertos, exemplo:
if(empty($list_pedidos_abertos)){ echo 'nenhum registro encontrado'; }else{