Pessoal estou com um pequeno problema!
Tenho uma tabela chamada ESTABELCIMENTOS com os seguintes campos:
id-INT
nome- VARCHAR
categoria- VARCHAR
subcategoria- VARCHAR
item - VARCHAR
sub_item - VARCHAR
chaves - VARCHAR
===================================
exemplo dos dados:
NOME - CATEGORIA - SUBCATEGORIA - ITEM - SUB_ITEM - CHAVES
RIACHUELO COMÉRCIO - LOJA - ROUPA - MASCULINO - ROUPAS, MASCULINO, HOMEM, MODA
TENHO UM FORMULÁRIO COM UM CAMPO CHAMDO BUSCA.
O USUÁRIO VAI DIGITAR UMA PALAVRA E AO CLICAR NO BOTÃO PROCURAR. DEVERÁ SER FEITA UMA BUSCA NA TABELA ESTABELECIMENTOS
NOS CAMPOS RELACIONADOS ACIMA. SE O TERMO DIGITADO FOR ACHADO EM ALGUM DOS DESSES CAMPOS DA TABELA DEVERÁ SER RETORNADO
O RESULTADO DO ESTABELECIMENTO.
OBS: O CAMPO CHAVES - SÃO PALAVRAS CHAVES SEPARADOS POR VÍRGULA.
Alguém sabe montar essa consulta???
Dúvida Em Consulta!
Started By
claytonprog
, 07/10/2012, 09:11
4 replies to this topic
#1
Posted 07/10/2012, 09:11
#2
Posted 07/10/2012, 18:06
Tenta assim:
$sql = "SELECT * FROM estabelecimentos WHERE nome LIKE '".$filtrar."%' OR categoria LIKE '".$filtrar."%' OR subcategoria LIKE '".$filtrar."%' OR item LIKE '".$filtrar."%'OR subitem LIKE '".$filtrar."%' OR chaves LIKE '".$filtrar."%'";
#3
Posted 08/10/2012, 09:54
Valew! Funcionou!!!
#4
Posted 13/10/2012, 14:53
Valew! Funcionou!!!
Novo Problema!
Pessoal estou com problema de acentuação na busca.
segue abaixo o meu código.
<?php require_once("connections/conexao.php"); $filtrar = $_POST["busca"]; $hoje = date("Y-m-d"); $query = "SELECT * FROM estabelecimentos WHERE nome LIKE '%".$filtrar."%' OR categoria LIKE '%".$filtrar."%' OR subcategoria LIKE '%".$filtrar."%' OR item LIKE '%".$filtrar."%' OR sub_item LIKE '%".$filtrar."%' OR chaves LIKE '%".$filtrar."%' and status='ativo' and dt_insc_fin >= '".$hoje."' AND dt_insc_fin != '0000-00-00'"; $result = mysql_query($query) or die("Error: " . mysql_error()); if (@mysql_num_rows($result) == 0 ) { echo "<br>"; echo "<font size=2 color=#000066 face=Verdana>"; echo("Não existem registro para esta busca!") ."<p>"; echo "</font>"; echo "<font size=2 color=#000066 face=Verdana>"; } else { while ($row = mysql_fetch_assoc($result)) { $id = $row['id']; $id_plano = $row['idplano']; $nome = $row['nome']; $foto = $row['banner']; $largura = $row['largura']; $altura = $row['altura']; ?> <h1><?php echo $row['nome']; ?></h1> <a href="estabelecimento.php?id=<? echo $id;?>" class="menuheader"><img src="painel/<?php echo $row['banner']; ?>" width=<? echo $largura ?> height=<? echo $altura ?> border="0" alt="<?php echo $row['nome']; ?>" /> </a> <?php } } ?>
No banco no campo chaves está cadastrada a palavra chave: paletó
Se eu digitar a palavra "paletó" no campo do formualario ele não me traz nada, agora de se eu tirar o acento da palavra no banco de dados e fazer a
pesquisa ele traz o resultado normal ou seja toda a palavra chave cadastrada com acento a consulta não funciona.
Alguém pode me ajudar!
#5
Posted 17/10/2012, 12:45
Pode ser problema de codificação, tenta dar uma olhada na codificação da sua página. Você também pode converter a string pra utf8 na hora que for definir a variável. Algo como:
$filtrar = utf8_encode($_POST["busca"]);E caso não funcione tente utf8_decode .
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)