Ver Mensaje Individual
  #12 (permalink)  
Antiguo 12/09/2009, 01:06
severicks
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Mejor forma para un sistema de busqueda

hise lo q me recomendaron pero me da un problema de coneccion con la base de datos, esto fue lo escribi

Código PHP:
function buscador($search){
    global 
$coneccion;
    
$palabras =explode(" "$search);
    
$likes = array();
    foreach(
$palabras as $palabra){
        if(
strlen(trim($palabra))>3){
            
$likes[] = " LIKE '%" .mysql_prep($palabra) ."%'"//mysql_prep()es una funcion q hise para q la entrada no tubiera conflicto con mysql
        
}
    }
    
$query ="SELECT * FROM articulos WHERE titulo ";
    
$query .= implode(", "$likes);
    
$query .="OR contenido ";
    
$query .= implode(", "$likes);    
    
$result mysql_query($query$coneccion);
    
confirm_query($result);
    return 
$result;


use el LIKE, explode() e implode() tal como le lo recomendaron pero si la busqueda tiene dos o mas palabras me da este error:

Cita:
Data base query falied!You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' LIKE '%esto%'OR contenido LIKE '%texto1%', LIKE '%texto2%'' at line 1
*EDITADO:
bueno ya lo corregi solo tenia q cambiar los separadores del implode() por "AND columna ".

Última edición por severicks; 12/09/2009 a las 01:27