Hewitt 14 Denunciar post Postado Setembro 24, 2015 Tenho o seguinte código: <? $sql = mysql_query("SELECT * FROM clientes WHERE '$data' > data_venc"); while ($linha = mysql_fetch_array($sql)){ if ($linha != 0) { echo '<p></p>'; echo 'Cliente ID: '.$linha['id_cli'].'<br />'; echo 'Cliente: '.$linha['nome'].'<br />'; echo 'Ativado: '.$linha['ativado'].'<br />'; echo 'Data do Vencimento: '.$linha['data_venc'].''; } else{ echo 'Não foram encontrados registros!'; } } ?> Está funcionando quando existe registro, mas quando não há registros a mensagem não aparece. Estou errando em algo? Compartilhar este post Link para o post Compartilhar em outros sites
LandersonAlmeida 31 Denunciar post Postado Setembro 24, 2015 Faz tempo que não uso mysql, mas tente assim <?php $SQL = mysql_query("SELECT * FROM clientes WHERE '$data' > data_venc"); if(mysql_num_rows($SQL)): while ($linha = mysql_fetch_array($sql)): echo '<p></p>'; echo 'Cliente ID: '.$linha['id_cli'].'<br />'; echo 'Cliente: '.$linha['nome'].'<br />'; echo 'Ativado: '.$linha['ativado'].'<br />'; echo 'Data do Vencimento: '.$linha['data_venc'].''; endwhile; else: echo 'Não foram encontrados registros!'; endif; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Setembro 24, 2015 Seu if precisa estar fora do while. Uma solução é verificar a quantidade de registros existentes ANTES de executar o looping. Se não há registros para exibir, ele não entra no while, por isso nem lê o seu if. Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Setembro 24, 2015 Obrigado Matheus Tavares e LandersonAlmeida. O exemplo que o Landerson postou funcionou perfeitamente. Não sabia do if antes do while. Não sei se pode, mas queria tirar outra dúvida aproveitando o tópico: como faço para atualizar um campo para todos os cadastros que forem mostrados no while? Tem alguma sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Setembro 24, 2015 como faço para atualizar um campo para todos os cadastros que forem mostrados no while? Tem alguma sugestão? Você precisa repetir a consulta, mas ao invés de selecionar registros, atualize-os. SELECT * FROM blabla WHERE alguma_coisa > 5 Fica assim: UPDATE blabla SET coluna = 'xxxxx' WHERE alguma_coisa > 5 Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Setembro 24, 2015 Resolvi já na propria consulta: while ($linha = mysql_fetch_array($sql)): echo '<p></p>'; echo 'Cliente ID: '.$linha['id_cli'].'<br />'; echo 'Cliente: '.$linha['nome'].'<br />'; echo 'Ativado: '.$linha['ativado'].'<br />'; echo 'Data do Vencimento: '.$linha['data_venc'].''; $sql_att = mysql_query("UPDATE clientes SET ativado = '0'"); Obrigado pela ajuda! resolvido! Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Setembro 29, 2015 Como não quero abrir outro tópico, postarei aqui. Tenho o seguinte código, mas não está funcionando. Sei que o IF deve ficar fora, mas não sei como montar esse IF: <? $sql_lista = mysql_query("SELECT * FROM clientes"); while($ln = mysql_fetch_array($sql_lista)){ if ($ln['ativado'] = 1){ $ativo = 'Sim'; } else { $ativo = 'Não'; } ?> <tr> <td><? echo $ln['nome'] ?></td> <td><? echo $ativo ?></td> </tr> <? } ?> </tbody> </table> O erro está que ele mostra Sim para todos os registros! oO Compartilhar este post Link para o post Compartilhar em outros sites
(RNU) Ruan Silva 61 Denunciar post Postado Setembro 29, 2015 if ($ln['ativado'] = 1){ para comparar use "==" if ($ln['ativado'] == 1) Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Setembro 29, 2015 Obrigado rnu.silva! Obs: como faço para citar o usuário aqui no fórum? Compartilhar este post Link para o post Compartilhar em outros sites