arielson 0 Denunciar post Postado Agosto 18, 2016 Olá, pessoal tudo bem? Eu novamente... Qual é a minha dificuldade dessa vez? Pois bem. Aprendi com a ajuda de alguns cursos como faz um motor de busca. Agora só tem um problema. Quando digito uma letra, aparece todos resultados que tem essa letra. E mais...quando dou um espaço, mostra todos os resultados, pois, todos tem espaço, por exemplo 'cachorro<espaço>quente'. O que quero? (Por favor, se puderem.) Quero que quando digite, só apareça o que digitei. E se tiver como também, gostaria de tirar a sequencia de números que aparece. Por exemplo: se digitei ''cachorro'' vai aparecer em sequencia todos os que tem cachorro. ----------------------------- 1: Cachorro 2: Cachorro quente 3: Como fazer cachorro quente -------------------------- Essa sequencia ai, marcado com negrito. Não mostrar resultados quando apertar espaço, e tirar a sequencia que mostra. Estou aprendendo amigos. Muito Obrigado. Código de busca <?php //Incluir a conexão com banco de dados include_once('conexao.php'); //Recuperar o valor da palavra $cursos = $_POST['palavra']; //Pesquisar no banco de dados nome do curso referente a palavra digitada pelo usuário $cursos = "SELECT * FROM cursos WHERE nome LIKE '%$cursos%'"; $resultado_cursos = mysqli_query($conn, $cursos); if(mysqli_num_rows($resultado_cursos) <= 0){ echo "Não conseguimos encontrar nada com esse nome..."; }else{ while($rows = mysqli_fetch_assoc($resultado_cursos)){ echo "<li>".$rows['nome']."</li>"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
pokee 2 Denunciar post Postado Agosto 18, 2016 Troque o LIKE por = $cursos = "SELECT * FROM cursos WHERE nome LIKE '%$cursos%'"; $cursos = "SELECT * FROM cursos WHERE nome = '{$cursos}'"; Ai ele só vai buscar o realmente só o que foi escrito Compartilhar este post Link para o post Compartilhar em outros sites
Visitante Denunciar post Postado Agosto 18, 2016 Faça uma limpeza na string enviada, verifique se está vazio, depois remova os espaços no incio e fim da string $cursos = $_POST['palavra']; if(empty($cursos) or $cursos == ' ') { print 'digite alguma coisa'; } else { $cursos = trim($cursos);//tira os espaços no inicio e fim $resultado_cursos = mysqli_query($conn, "SELECT nome FROM `cursos` WHERE `nome` LIKE '%$cursos%'"); if(mysqli_num_rows($resultado_cursos) == 0){ echo "Não conseguimos encontrar nada com esse nome..."; }else{ while($rows = mysqli_fetch_assoc($resultado_cursos)){ echo "<li>".$rows['nome']."</li>"; } } } Compartilhar este post Link para o post Compartilhar em outros sites
arielson 0 Denunciar post Postado Agosto 19, 2016 Muito obrigado amigos. Compartilhar este post Link para o post Compartilhar em outros sites
arielson 0 Denunciar post Postado Agosto 19, 2016 Troque o LIKE por = $cursos = "SELECT * FROM cursos WHERE nome LIKE '%$cursos%'"; $cursos = "SELECT * FROM cursos WHERE nome = '{$cursos}'"; Ai ele só vai buscar o realmente só o que foi escrito Me diz, tudo OK. Agora, estou tentando colocar palavras pra não encontrar na pesquisa. Tem como fazer isso, eu dupliquei a linha, tentei mover o } mais dá erro. Compartilhar este post Link para o post Compartilhar em outros sites
pokee 2 Denunciar post Postado Agosto 19, 2016 Me diz, tudo OK. Agora, estou tentando colocar palavras pra não encontrar na pesquisa. Tem como fazer isso, eu dupliquei a linha, tentei mover o } mais dá erro. Como assim palavras pra não encontrar na pesquisa ? Compartilhar este post Link para o post Compartilhar em outros sites
arielson 0 Denunciar post Postado Agosto 19, 2016 Como assim palavras pra não encontrar na pesquisa ? Exemplo. No caso, eu aperto espaço 1x e não mostra nada. OK Eu aperto espaço 2x já mostra todos os resultados. Queria limitar. Só mostrar resultados com mais de 3 letras. E não mostrar nada, caso aperte espaço, não importa o quanto. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 19, 2016 Pesquise por FULL TEXThttps://en.wikipedia.org/wiki/Full_text_searché o que mais se aproxima da logica Fuzzy, ou seja, vai mostrar os mais relevantes Compartilhar este post Link para o post Compartilhar em outros sites
arielson 0 Denunciar post Postado Agosto 19, 2016 Pesquise por FULL TEXT https://en.wikipedia.org/wiki/Full_text_search é o que mais se aproxima da logica Fuzzy, ou seja, vai mostrar os mais relevantes Obrigado. Farei isso. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 19, 2016 De uma olhada nestes conteúdos pra entender a dinâmica. Falei se aproxima, na realidade é similar a Logica Fuzzy.http://www.devmedia.com.br/mysql-fulltext-search/14040 http://www.devmedia.com.br/indices-fulltext-no-mysql/7631 Compartilhar este post Link para o post Compartilhar em outros sites
arielson 0 Denunciar post Postado Agosto 20, 2016 De uma olhada nestes conteúdos pra entender a dinâmica. Falei se aproxima, na realidade é similar a Logica Fuzzy. http://www.devmedia.com.br/mysql-fulltext-search/14040 http://www.devmedia.com.br/indices-fulltext-no-mysql/7631 Opa! De novo! Muito obrigado, vou estudar. Compartilhar este post Link para o post Compartilhar em outros sites