If dentro de While PHP

23/10/2019

10

Estou criando uma página que realize monitoramento de atividades.
No meu código PHP defini uma variável que busca a data atual, depois passei o parâmetro de conexão com o banco de dados, depois criei um while para buscar as informações, dentro do while criei um if, a condição if é que se a variável data for igual a data cadastrada na atividade, exiba toda a atividade cadastrada. Mas o problema é que o if não está controlando essa condição, está passando direto e exibindo tudo.

<?php


$data = date("Y-m-d");




$conect = mysqli_connect('localhost','root','','projeto_pessoal') or die ('Erro na conexão com o banco de dados');
 

$result_pesquisa = "SELECT * FROM cadastrar_atividade";

	
$resultado_pesquisa = mysqli_query($conect, $result_pesquisa);
	
?>
<h1>Resultado da Pesquisa</h1>
<?php


while($rows_pesquisa = mysqli_fetch_array($resultado_pesquisa)){
	if($rows_pesquisa['prazo'] == $data)
		
		echo '<p class="title">'.'ID da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['id'].'<br>'.'</p>';
		echo '<p class="title">'.'Nome da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['nome_atividade'].'<br>'.'</p>';
		echo '<p class="title">'.'Descrição da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['desc_atividade'].'<br>'.'</p>';
		echo '<p class="title">'.'Prioridade: '.'</p>'.'<p class="result">'.$rows_pesquisa['prioridade'].'<br>'.'</p>';
		echo '<p class="title">'.'Prazo: '.'</p>'.'<p class="result">'.$rows_pesquisa['prazo'].'<br>'.'</p>';
	
		echo 'carregado';
	echo '<hr></hr>';
	
		

	}

 
?>




Responder

Posts

23/10/2019

Luiz Vichiatto

Quando você lista sem o IF ele lista corretamente?
Você pode enviar o conteúdo do campo para uma variável idêntica e compara-lá com a que você está querendo.
echo "<p". $rows_pesquisa['prazo'] ">  </p>"
echo "<p". $data .">  </p>"
$data_campo=$rows_pesquisa['prazo']
echo "<p". $data_campo .">  </p>"


Está um pouco tosco, mas a ideia é exibir os valores que estão nas variáveis para saber o que está comparando.
Responder

23/10/2019

Luiz Santos

Estou criando uma página que realize monitoramento de atividades.
No meu código PHP defini uma variável que busca a data atual, depois passei o parâmetro de conexão com o banco de dados, depois criei um while para buscar as informações, dentro do while criei um if, a condição if é que se a variável data for igual a data cadastrada na atividade, exiba toda a atividade cadastrada. Mas o problema é que o if não está controlando essa condição, está passando direto e exibindo tudo.

<?php


$data = date("Y-m-d");




$conect = mysqli_connect('localhost','root','','projeto_pessoal') or die ('Erro na conexão com o banco de dados');
 

$result_pesquisa = "SELECT * FROM cadastrar_atividade";

	
$resultado_pesquisa = mysqli_query($conect, $result_pesquisa);
	
?>
<h1>Resultado da Pesquisa</h1>
<?php


while($rows_pesquisa = mysqli_fetch_array($resultado_pesquisa)){
	if($rows_pesquisa['prazo'] == $data)
		
		echo '<p class="title">'.'ID da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['id'].'<br>'.'</p>';
		echo '<p class="title">'.'Nome da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['nome_atividade'].'<br>'.'</p>';
		echo '<p class="title">'.'Descrição da atividade: '.'</p>'.'<p class="result">'.$rows_pesquisa['desc_atividade'].'<br>'.'</p>';
		echo '<p class="title">'.'Prioridade: '.'</p>'.'<p class="result">'.$rows_pesquisa['prioridade'].'<br>'.'</p>';
		echo '<p class="title">'.'Prazo: '.'</p>'.'<p class="result">'.$rows_pesquisa['prazo'].'<br>'.'</p>';
	
		echo 'carregado';
	echo '<hr></hr>';
	
		

	}

 
?>






Gustavo, pelo que vi do seu código, faltou você abrir a chave ({) no IF.
Quando você não usa chave para gerar o bloco, o programa entende que só a primeira linha faz parte do If.

Abra e feche o bloco no IF, que acredito que seu programa vai funcionar.

Grande abraço
Responder