Foros del Web » Programando para Internet » PHP »

Buscador web

Estas en el tema de Buscador web en el foro de PHP en Foros del Web. Hola En mi pagina web he creado un buscador bastante sencillo, pero no me da los resultado sdeseados. He creado una base de datos con ...
  #1 (permalink)  
Antiguo 16/01/2010, 15:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años
Puntos: 11
Buscador web

Hola

En mi pagina web he creado un buscador bastante sencillo, pero no me da los resultado sdeseados.

He creado una base de datos con 3 filas:

fila uno: tag
fila dos: link
fila tres: texto a mostrar

En la primera guardo las palabras claves de cada coche. EN las segundas el link a la pagina donde se habla de ese coche y en la tercera el texto que muestre la pagina buscar.php cuando se introduzca una busqeuda.

El probelma esta en qeu en php he puesto lo siguietne apra hacer la busqueda:

Código:
SELECT * FROM busqueda WHERE `tag` LIKE '%$buscar%'
pero con esto solo me encuentra algo si pongo los tags en el mismo orden, pero sin embargo si muevo los tags no me aparecen resultados.

Por ejemplo,si en la fila de tags tengo metido: SERIE CINCO MOTOR EXPLOSION TRACCION TRASERA

y busco por ejemplo serie cinco trasera, me mostrara no se ahn encontrado resultados.

ALguna idea de como modificar el codigo para que ais si lo encuentre?

Muchas gracias
  #2 (permalink)  
Antiguo 16/01/2010, 15:59
 
Fecha de Ingreso: enero-2010
Ubicación: México
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Buscador web

lo que pasa es que la consulta buscar la oracion completa (osea $buscar), no sus partes dentro de la columna tag.
tendrias que separar los tags y buscarlos por separado.

Prueba con este codigo, que te genera en $Sql la consulta con las tags (separados por espacios de $buscar) por separado.
Código PHP:
<?
$Tags 
explode(" ",$buscar);
$Sql "SELECT * FROM busqueda WHERE ";
$x count($Tags);
for(
$i=0;$i<$x;$i++){
       
$Sql.= " tag LIKE '%".$Tags[$i]."%'";
       
$Sql.= $i < ($x-1) ? " OR " "";
       }
//aca iria el query y el listado.
?>
Yo te aconsejo que agreges un ID y un DISTINCT para evitar que se repitan los resultados.


Saludos.

Última edición por Luis_Fantasma; 16/01/2010 a las 16:05
  #3 (permalink)  
Antiguo 16/01/2010, 16:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años
Puntos: 11
Respuesta: Buscador web

pero mi problema es que he creado una clase para meter el select, lo tengo asi:

Código:
$db->setQuery("SELECT * FROM `busqueda`  WHERE MATCH(tag) AGAINST('%$buscar%')");
		$res = $db->loadObjectList();
Entonces nos e como ir metiendo luego la $sql=+ que me has dicho

Etiquetas: buscadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:00.