Ir para conteúdo

POWERED BY:

Arquivado

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

Newton

Busca Especifica na Tabela

Recommended Posts

Gostaria de saber como posso fazer para que o resultado da busca seje especifico em um campo da tabela?

 

Por exemplo: Quando a pessoa digitar "São Paulo", não apareça todas as empresas da cidade de São Paulo, e sim as empresas que tem no nome as palavras São ou Paulo. Pois se o usuário digitar São Paulo, no meu caso, ele irá retornar o resultado com tudo que tem São Paulo, quero filtrar isso.

 

No meu caso, seria com o campo na tabela chamado "tb_name", quero que os resultados de busca sejam buscados nesse campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu estava vendo isso, na query do mysql use o comando LIKE que tipo seria "parecido" "contem" entende? meio que

 

$qr = "SELECT * FROM tabela WHERE linha LIKE '%$_GET[]%' ";

seria +/- isso, de uma pesquisada fiz meio por cima, espero ter ajudade :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se ele usar:

LIKE '%São Paulo%'

O resultado será: registros com o termo São Paulo ou com qualquer coisa antes ou qualquer coisa depois.

Mas não encontrará São Jose dos Campos, São João del Rei, Paulo Ramos como ele quer.

 

Por isso que é interessante usar Pesquisa Full-text, um exemplo:

 

SELECT * 
FROM tb_name 
WHERE MATCH(campo) AGAINST ('+são +paulo' IN BOOLEAN MODE);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer essa busca, a string deve ser tratada pelo php ou pode ser tradatada pelo Mysql, alguém pode dar um exemplo ?

 

SELECT * 
FROM tb_name 
WHERE MATCH(campo) AGAINST ('+são +paulo' IN BOOLEAN MODE);

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP:

$qual_palavra = "São Paulo"
$qual_palavra = str_replace(" ", " +", $qual_palavra);
$qual_palavra =  "+".$qual_palavra;

SELECT * 
FROM tb_name 
WHERE MATCH(campo) AGAINST ('$qual_palavra' IN BOOLEAN MODE);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Tentei fazer aqui e não deu nada certo, e estou com medo de fazer alguma coisa errad e detonar meu código.

Vou postar aqui o codigo que esta fazendo a busca:

 

<?php require_once('../Connections/search_db.php'); ?>
<?php
$colname_rs83 = "-1";
if (isset($_GET['title'])) {
  $colname_rs83 = (get_magic_quotes_gpc()) ? $_GET['title'] : addslashes($_GET['title']);
}
mysql_select_db($database_search_db, $search_db);
$query_rs83 = sprintf("SELECT * FROM table1 WHERE tb_name LIKE '%%%s%%' OR tb_desc LIKE '%%%s%%' ", $colname_rs83,$colname_rs83);
$rs83 = mysql_query($query_rs83, $search_db) or die(mysql_error());
$row_rs83 = mysql_fetch_assoc($rs83);
$totalRows_rs83 = mysql_num_rows($rs83);
?>

No caso eu tenho os seguintes campos na minha tabela: tb_id, tb_name, tb_desc, tb_img, tb_www e categoria. Gostaria que a busca só exibisse os resultados do campo categoria.

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.