Ir para conteúdo

POWERED BY:

Arquivado

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

ronza

[Resolvido] Busca com explode e for

Recommended Posts

Fiz um sistema de busca por palavra-chave, o problema é que eu queria que fosse pesquisado palavra por palavra.. Sei que é com explode e for que faz isso, mas nao faço idéia como. Se puderem me ajudar, eu agradeço.

 

Meu código php:

 

<?php
session_start();
include ('conexao.php');

$busca 		= $_POST['buscageral'];

$sql		= "SELECT * FROM cadastroestab WHERE estabnome LIKE '%$busca%' OR estabcategoria LIKE '%$busca%' OR estabendereco LIKE '%$busca%' OR estabnumero LIKE '%$busca%' OR estabbairro LIKE '%$busca%' OR estabtel1 LIKE '%$busca%' OR estabtel2 LIKE '%$busca%' OR estabemail LIKE '%$busca%' OR estabsite LIKE '%$busca%' OR estabimagem LIKE '%$busca%' ORDER BY id ASC";

$sqldestaque	= "SELECT * FROM destaque WHERE estabnome LIKE '%$busca%' OR estabcategoria LIKE '%$busca%' OR estabendereco LIKE '%$busca%' OR estabnumero LIKE '%$busca%' OR estabbairro LIKE '%$busca%' OR estabtel1 LIKE '%$busca%' OR estabtel2 LIKE '%$busca%' OR estabemail LIKE '%$busca%' OR estabsite LIKE '%$busca%' OR estabimagem LIKE '%$busca%' ORDER BY id ASC";

$qr			= mysql_query($sql) or die (mysql_error());
$qrdestaque		= mysql_query($sqldestaque) or die (mysql_error());

$NumReg		= mysql_num_rows($qr);
$NumRegdestaque	= mysql_num_rows($qrdestaque);

$reg            = mysql_fetch_assoc($qr);
$regdestaque    = mysql_fetch_assoc($qrdestaque);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

criar aqueles indices fulltext na tabela não ajudaria mais?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá shini!

Não faz muito tempo que comecei a mexer com php e mysql, nem sabia que existia esse fulltext no mysql! hahaha

Mas fui dar uma pesquisada e realmente é muito melhor!

Vou tentar me virar aqui, qualquer coisa eu posto de novo!

Valeu pela ajuda!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!! Vou postar o código pra quem estiver com essa mesma dúvida, ter uma idéia do que fazer!

 

<?php
session_start();
include ('conexao.php');

$busca 			= $_POST['buscageral'];

$pedacos = explode(" ",$busca); //separa as palavras qdo tem espaço
$numero = count($pedacos); //conta quantas palavras tem

//SE SO HA UMA PALAVRA DE BUSCA SE ESTABELECE UMA INSTRUCAO COM LIKE   

 if ($numero == 1) { 

$sql			= "SELECT * FROM cadastroestab WHERE estabnome LIKE '%$busca%' OR estabcategoria LIKE '%$busca%' OR estabendereco LIKE '%$busca%' OR estabnumero LIKE '%$busca%' OR estabbairro LIKE '%$busca%' OR estabtel1 LIKE '%$busca%' OR estabtel2 LIKE '%$busca%' OR estabemail LIKE '%$busca%' OR estabsite LIKE '%$busca%' ORDER BY id ASC";

$sqldestaque	= "SELECT * FROM destaque WHERE estabnome LIKE '%$busca%' OR estabcategoria LIKE '%$busca%' OR estabendereco LIKE '%$busca%' OR estabnumero LIKE '%$busca%' OR estabbairro LIKE '%$busca%' OR estabtel1 LIKE '%$busca%' OR estabtel2 LIKE '%$busca%' OR estabemail LIKE '%$busca%' OR estabsite LIKE '%$busca%' ORDER BY id ASC";

$qr				= mysql_query($sql) or die (mysql_error());
$qrdestaque		= mysql_query($sqldestaque) or die (mysql_error());

$NumReg			=mysql_num_rows($qr);
$NumRegdestaque	=mysql_num_rows($qrdestaque);

$reg = mysql_fetch_assoc($qr);
$regdestaque = mysql_fetch_assoc($qrdestaque);

}


if ($numero > 1) { 

$sql				= "SELECT * FROM cadastroestab WHERE MATCH(estabnome, estabcategoria, estabendereco, estabnumero, estabbairro, estabtel1, estabtel2, estabemail, estabsite) AGAINST ('$busca' IN BOOLEAN MODE)";

$sqldestaque		= "SELECT * FROM destaque WHERE MATCH(estabnome, estabcategoria, estabendereco, estabnumero, estabbairro, estabtel1, estabtel2, estabemail, estabsite) AGAINST ('$busca' IN BOOLEAN MODE)";

$qr				= mysql_query($sql) or die (mysql_error());
$qrdestaque		= mysql_query($sqldestaque) or die (mysql_error());

$NumReg			=mysql_num_rows($qr);
$NumRegdestaque	=mysql_num_rows($qrdestaque);

$reg = mysql_fetch_assoc($qr);
$regdestaque = mysql_fetch_assoc($qrdestaque);

}


?>

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.