Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/02/2012, 08:13
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: problema con buscador php mysql

prueba con MATCH AGAINST... antes de implementar esto, deberas saber que el MATCH AGAINST solo funciona con campos tipo FULLTEXT KEY en la BD, asi que te recomiendo leer un poquito al respecto en google.. o vas a tu BD y cambias tus campos a FULLTEXT, al menos en los que buscas las coincidencias.

te dejo un ejemplo de funcionamiento, pero deberas adaptarlo.. si es que comprendes lo que te dije mas arriba:

Código PHP:
$palabras$_REQUEST["busqueda"];

$buscar mysql_real_escape_string($palabras);

 
//CUENTA EL NUMERO DE PALABRAS
   
$trozos=explode(" ",$buscar);
   
$numero=count($trozos);

  if(
$numero == 1) {
   
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
  
$query_Rs="SELECT * FROM productos
   WHERE titulo LIKE LOWER('%$buscar%') 
   ORDER BY id DESC" 
;

  } elseif(
$numero 1) {
  
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
  //busqueda de frases con mas de una palabra y un algoritmo especializado

$query_Rs "SELECT *
            MATCH (titulo)
            AGAINST ('$buscar' IN BOOLEAN MODE) AS coincidencias
            FROM productos
            WHERE MATCH (titulo)
            AGAINST ('$buscar' IN BOOLEAN MODE)
            ORDER BY coincidencias DESC"
;
            } 
en este caso, titulo es el campo FULLTEXT donde se va a desarrollar el algoritmo Match Against..
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...