PHP - buscador avanzado

   
Vista:

buscador avanzado

Publicado por unai (108 intervenciones) el 26/11/2008 19:37:33
Hola amigos:
Tengo una web para descarga de códigos fuente escritos tanto en php, javascript como AJAX. El buscador es la pieza matríz del sitio para poder encontrar el código que uno desee. Tengo un problema con las tildes. Como es lógico, el buscador diferencia entre jose y josé, pero quiero que no lo haga. Alguna idea de por donde tirar.
La web es http://www.rincondelcodigo.com
Gracias por todo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de PHP
- Código fuente de PHP
- Cursos de PHP
- Temas de PHP
- Chat de PHP
información
Códigos de PHP
- Validación de CIF-NIF
- Juego del ahorcado
- Calendario

RE:buscador avanzado

Publicado por Reaven (48 intervenciones) el 27/11/2008 12:17:37
Se más explicito, la base de datos esta en mysql? utilizas un match para hacer la busqueda? un like? Como tratas los paraemtros de busqueda? Hay infinidad de maneras de tratar los datos. Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador avanzado

Publicado por unai (108 intervenciones) el 27/11/2008 22:01:45
Hola Reaven:
La base de datos está en MySQL y el código de búsqueda es el siguiente:

$trozos=explode(" ",$busqueda);
$numero=count($trozos);
}
if ($numero==1) {
$_pagi_sql="select * from cod where Cap_cod LIKE '%$q%' or Intro_cod LIKE '%$q%' order by Id_cod desc";
} elseif ($numero>1) {
$_pagi_sql="SELECT Id_cod,Cap_cod,Intro_cod, MATCH(Cap_cod,Intro_cod) AGAINST ('$q') AS coincidencia FROM search WHERE MATCH(Cap_cod,Intro_cod) AGAINST ('$busqueda') ORDER BY coincidencia DESC"; }

A ver si con estas pistas me puedes dar alguna idea de por donde tirar.
Gracias.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador avanzado

Publicado por Reaven (48 intervenciones) el 28/11/2008 11:54:40
Una pregunta porque si es 1 sola palabra lo realizas con el like poniendo % delante y detras , y si es mas de una usas el match? Te recomiendo que uses el match en los dos casos, y si no recuerdo mal el match tambien te devolverla los resultados con acentos o sin acentos. Y una vez tengas el resultado por regex eliminas los que no te interesen. La otra manera es en la consulta mysql usar el replace... pero claro lo tendras que usar tantas veces como "simbolos" con acentos puedan existir .

Mi recomendacion es , haz la misma consulta con el match en ambos casos, y trata los resultados por php. En mysql la funcion "replace" es un poco...chunga.... por lo tanto es mejor sacar todos los datos tanto con acentos como sin acentos, y por PHP recorrer las rows devueltas y comprobar la existencia de tu palabra....

Si buscan "jose" pues buscas en el string devuelto la palabra "jose" si no existe eliminas esa row de tu array.

En oracle existe el translate...pero en mysql la funcion "semejante" es replace que no admite formato regex si no strings...

No se si me he explicado espero que te sirva de ayuda. Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador avanzado

Publicado por unai (108 intervenciones) el 28/11/2008 14:11:36
Te has explicado perfectamente. Lo haré de la manera que me dices. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador avanzado

Publicado por Jose gaitan (1 intervención) el 26/12/2008 18:01:58
hola quiero que me explique como hacer el siguiente buscador en php

se trata de una captura de un criterio, puede ser una frase.
el resultado debe ser mostrar las palabras que contiene la frase en lineas diferentes en un text area.
las palbras deben mostrarse de un color diferente.
luego buscar en una base de datos, los registros que contengan esas palabras.

ok
me ayudarias hacer este trabajo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar