Jump to content

POWERED BY:

Archived

This topic is now archived and is closed to further replies.

Gleyson Abreu

Sistema de Busca não funciona

Recommended Posts

Não estou conseguindo fazer esse codigo funcionar não da error mais diz que não a pesquisa que tem no banco de dados sendo que o nome que eu digito ele tem 3 vezes no banco de dados mesmo assim não funciona alguem sabe porque, quando faço sem o LIKE %$NOMEVARIAVEL% ele funciona normal segue o codigo abaixo:

<form action="" method="post" enctype="multipart/form-data">
 
 
<input type="text" name="pesquisa" size="30" />
 
<input type="hidden" name="acao" value="buscar" />
 
<input type="submit" value="Buscar" />
 
</form>
 
<?php
include("conexao.php");
$pdo=conexao();
if (isset($_POST['acao']) && $_POST['acao'] == 'buscar'){
 
$pesquisa = $_POST['pesquisa'];
 
$queryBusca = $pdo->prepare("SELECT * FROM cadastro WHERE nome LIKE '%pesquisa%'");
 
if($queryBusca->rowCount() == '0'){
 
echo "Não foi encontrado nenhum registro";
 
}else{
 
while($linhaBusca = mysql_fetch_array($queryBusca)){
 
?>
 
<h1><?php echo $linhaBusca['nome'];?></h1>
 
<?php
 
}
 
}
 
}
 
?>

Alguem ajuda ai porfavor.

Share this post


Link to post
Share on other sites
SELECT * FROM cadastro WHERE nome LIKE '%pesquisa%

Faltou $

SELECT * FROM cadastro WHERE nome LIKE '%$pesquisa%

Share this post


Link to post
Share on other sites

Comece pelo simples, dá um echo na varável para ver se ela tem conteúdo, depois um print_r na própria query para ver o que ela está mandando para o BD...

Share this post


Link to post
Share on other sites

Acabei de fazer isso, a variavél esta mandado o nome certo no caso "Jonatan" nome d meu irmão que criei de exemplo com 3 cadastro no banco de dados, então ela esta enviando certo pr bd e o print_r também esta dando certo:

PDOStatement Object ( [queryString] => SELECT * FROM cadastro WHERE nome like '%Jonatan%' )

quand dou

echo $rows = $queryBusca->rowCount();

ele aparece 0, sendo que o nome tem 3 vezes no banco de dados, pra o min o error está nas rows que ta contando errado.

Share this post


Link to post
Share on other sites

Analisando melhor o código, você esta usando pdo statement

 

Então o que isso

while($linhaBusca = mysql_fetch_array($queryBusca)){

está fazendo no código acima?

 

Amigo na boa, eu já corrige alguns códigos seus com PDO, de uma olhada nos posts antigos, e você saberá do que estou falando.

http://php.net/manual/pt_BR/pdo.prepare.php

http://php.net/manual/pt_BR/pdostatement.execute.php

http://php.net/manual/pt_BR/pdostatement.fetch.php

http://php.net/manual/pt_BR/pdostatement.fetchobject.php

 

http://php.net/manual/pt_BR/pdo.setattribute.php

 

Se tiver dificuldade use query ao invés de prepare

 

http://php.net/manual/pt_BR/pdo.query.php

Share this post


Link to post
Share on other sites

Tava com preguiça e achei esse codigo na net, aliás um programador não pode ter priguiça certo :).

Vi que o código estava meio bugado hoje a tarde, quando voltei de um lugar.

Bom resumindo, re-criei o código do Zero(0), fazendo o mesmo funcionar novamente ele está funcionando normal agora, porque tive muito trabalho pra faze-lo volta a funcionar então vai ai abaixo o código dele funcionando normal, dizendo 100%, ele faz pesquisa de nome ou sobrenome, cara digita Nome da pessoa e eles lista todos os nomes com aquela letra ou numero, assim acontece com o sobrenome;

Código Funcional:

<form action="" method="post" enctype="multipart/form-data">


	<input type="text" name="pesquisa" placeholder="Dgite apenas NOME ou SOBRENOME" size="30"/>

	<input type="submit" value="Buscar" name="pesquisar"/>

</form>

<?php
include("conexao.php");
$pdo=conexao();

if(isset($_POST['pesquisar'])){
$nome_pesquisado = $_POST['pesquisa'];
if($_POST['pesquisa'] == ''){
	echo "Você digitou nada no campo de pesquisa.";
}else{

$select = $pdo->query("SELECT * FROM cadastro WHERE nome LIKE '%$nome_pesquisado%' OR sobrenome LIKE '%$nome_pesquisado%'"); 
$rowCount = $select->rowCount();
if($rowCount == 0){
	echo "Nenhum usuario cadastrado com esse nome.";
}else{
	while($dadosBusca = $select->fetch(PDO::FETCH_OBJ)){
	
	
?>
	<li><?php echo $dadosBusca->nome; echo $dadosBusca->sobrenome;?></li>
<?php
}	
}
} 
}
	?>

Até mais, mais obrigado pra quem respondeu, Williams & ESerra!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.