![]() |
Pesquisa interna php/mysql - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Pesquisa interna php/mysql (/showthread.php?tid=7809) |
Pesquisa interna php/mysql - SaraInf - 18-11-2010 15:17 Ola ![]() 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 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ço ![]() RE: Pesquisa interna php/mysql - Bruno Bernardino - 18-11-2010 15:57 Boas, Antes de mais, "limpa" (sanitize) as variáveis antes de as utilizares em queries, por exemplo: $sql = “SELECT * FROM tabela WHERE campo LIKE ‘%”.mysql_real_escape_string($palavra).”%’”; Segundo, para o que precisas, acho que o seguinte bastava: $sql = "SELECT * FROM tabela WHERE MATCH (campo1,campo2) AGAINST ('".mysql_real_escape_string($palavra)."' IN NATURAL LANGUAGE MODE"; E não precisavas de andar a tirar acentos nem a comparar o nível de semelhança. Para saberes o número de registos, utilizas o mysql_num_rows($query); como já fazes mais em cima. Se preferires continuar a utilizar o teu código, basta utilizares um contador para saberes o número de resultados totais e depois mostras apenas os necessários para a tua página, mas isso não é muito optimizado. RE: Pesquisa interna php/mysql - SaraInf - 18-11-2010 16:07 Vou utilizar a primeira opção, não conhecia e realmente torna tudo muito mais simples. Obrigada ![]() |