Ir para conteúdo

Arquivado

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

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT * FROM cadastro WHERE nome LIKE '%pesquisa%

Faltou $

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

Compartilhar este post


Link para o post
Compartilhar em outros 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...

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros 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!

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.