Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Pesquisa interna php/mysql
18-11-2010, 15:17
Mensagem: #1
Pesquisa interna php/mysql
OlaSmile
Comecei a trabalhar há pouco com php e estou a precisar de uma ajudinha...
Tenho de criar um sistema de pesquisa interno para um site, que pesquise na base de dados (mysql).
Tudo o que encontrei até agora na internet foi um sistema simples que apenas compara uma palavra exacta:

Código PHP:
$sql “SELECT FROM tabela WHERE campo LIKE ‘%.$palavra.%’”

Mas precisava de mais, entao fui pesquisando e criando um sistema que funciona como quero:

Código PHP:
//palavra ou frase inserida
$palavra=$_GET['palavra'];
//sem acentos
$palavranova strtr($palavra"áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ""aaaaeeiooouucAAAAEEIOOOUUC");

    
//vai buscar à base de dados todos os nomes para comparar com a palavra inserida
    
$sql="SELECT*FROM tabela ";
    
$query=mysql_query ($sql); 
    
$num mysql_num_rows($query);
    for(
$i 0$i $num$i++){
    
$nome=@mysql_result($query$i"nome");
    
    
//tira os acentos 
    
$nomenovo strtr($nome"áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ""aaaaeeiooouucAAAAEEIOOOUUC");
    
//percentagem de digitos iguais no nome
    
$caracteresiguaissimilar_text($nomenovo$palavranova);
    
$numerocaracteresstrlen ($nomenovo);
    
$divisao$caracteresiguais/$numerocaracteres;
    
$percentagem$divisao "100";
    
    
//verifica se alguma das palavras está incluida
    
$pos=stristr($nomenovo$palavranova);

    
//escolhe os resultados 
    
if ($percentagem "60") {
    print 
$nome;
    }else if (
$pos){
    Print 
$nome;
    }    
    } 

O problema é que com este código eu não consigo incluir paginação, que como são muitos registos é necessária.
Se alguém me poder ajudar com a paginação ou se tiverem outra ideia para o código, agradeçoSmile
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
Pesquisa interna php/mysql - SaraInf - 18-11-2010 15:17

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)