Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2008, 07:40
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: match again o select

Hola

podrias hacer esto mas o menos
si es solo una palabra la que ponen en el cuadro de busqueda que la consulta sea con LIKE y si son do o mas que la consulta a la BBDD sea con MATCH AGAINST.
Pero debes tener los campos de la BBDD, que desees usar para buscar como INDICE FULL TEXT, lo puedes hacer con administrador de MYSQL
PhpMyAdmin

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 * 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 * , MATCH(name, description) AGAINST ('+$busqueda') as Score FROM descargas
                        WHERE MATCH (name, description) AGAINST ('+$busqueda') ORDER BY Score DESC"
;
 
 
 
  } else{echo 
"no hay resultados";} 
Un saludo

Última edición por jaronu; 09/07/2008 a las 07:51