Ver Mensaje Individual
  #9 (permalink)  
Antiguo 10/03/2008, 14:36
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: como hacer una busqueda a base datos pasando mas de una palabra clave

He hecho una tabla nueva tipo MyISAM, con el campo description que es el que quiero usar de busqueda como indice FULLTEXT, y despues empece a entrarle datos,

la busqueda con una palabra la sigue haciendo bien pero ahora cuando pongo dos palabras para hacer la busqueda, ya no da error, simplemente no devuelve resultados.
Me he asegurado de que las dos palabras esten en el campo de la BD, pero no devuelve resultados.

Alguien sabe porque?
U otra manera de hacer la busqueda con mas de una palabra?

Gracias.

el codigo lo he dejado asi:


Código PHP:

$busqueda
=$_POST['palabra'];

 
 if (
$busqueda<>''){ 
  
//CUENTA EL NUMERO DE PALABRAS 
  
$trozos=explode(" ",$busqueda); 
  
$numero=count($trozos); 
  if (
$numero==1) { 
    
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE 
    
$_pagi_sql="SELECT name, description FROM descargas WHERE description =1 
      AND name LIKE  '%$busqueda%' OR description LIKE  '%$busqueda%' ORDER  BY name ASC"

  } 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 
    
$_pagi_sql="SELECT   description, MATCH (   description ) 
      AGAINST (  '$busqueda' ) FROM descargas WHERE 
      MATCH (  description ) AGAINST (  '$busqueda' ) ORDER  BY name ASC"

  }