Ir para conteúdo

POWERED BY:

Arquivado

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

Hewitt

Verificação IF dentro While não funciona!

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.