ronza 1 Denunciar post Postado Março 14, 2012 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
shini 318 Denunciar post Postado Março 14, 2012 criar aqueles indices fulltext na tabela não ajudaria mais? Compartilhar este post Link para o post Compartilhar em outros sites
ronza 1 Denunciar post Postado Março 15, 2012 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
ronza 1 Denunciar post Postado Março 15, 2012 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