Ver Mensaje Individual
  #35 (permalink)  
Antiguo 30/07/2007, 10:52
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: problema con buscador simple..... MATCH() AGAINST()

Pues acá hay 2 soluciones; 1 con javascript (más eficiente) y otra del lado del server ...

Posteo la del lado del server ...
Código PHP:
#duplica esta entrada para cada $_GET
$_GET'carpeta' ] = $_GET'carpeta' ] == '' '-------' $_GET'carpeta' ];

$query_busqueda_resultado 'SELECT *
FROM documentos
WHERE carpeta_ID LIKE "%' 
$_GET'carpeta' ] . '%"
AND funcionario_ID LIKE "%' 
$_GET'funcionarios' ] . '%"
AND fecha_entrada LIKE "%' 
$_GET'fecha_entrada' ] . '%"
AND fecha_documento LIKE "%' 
$_GET'fecha_doc' ] .'%"'
Lo que te está ocurriendo tiene sentido, ya que le estas diciendo a MySQL que te traiga las coincidencias de todos los campos ... osea te está generando cosas como WHERE carpeta_ID LIKE "%%" ... entonces obviamente pues todo coincide con eso ... ...

Con javascript lo que tendrías que hacer es antes del envío del formulario validar cuáles de tus campos de búsqueda van vacíos y para el que valla vacío cambiarle el valor a "-------" ...

NOTA: Estoy usando ------- asumiendo que en los registros no existe tal valor, obviamente hay formas mejores, del lado del server, x ejemplo reconstruyendo el query si vienen vacíos y metiendo un where que invalide los like . Solo muestro lo que tienes que hacer y una solución simple, la solución final es decisión tuya.

Mucha suerte y un saludo