Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2014, 05:31
pixonjr
 
Fecha de Ingreso: diciembre-2013
Mensajes: 49
Antigüedad: 10 años, 4 meses
Puntos: 1
Buscador con chekbox, de tablas diferentes, campos diferentes, etc

Hola muy buenas.

En el proyecto que estoy haciendo haciendo ahora mismo estoy con un buscador entre manos.

Es un buscador avanzado, donde introduces la palabra y marcas los checkbox sobre las cosas que tu quieres que busque, como si fuese una busqueda avanzada de un foro.

He buscado por Google e incluso en el buscador del foro y este es donde he encontrado mas resultados. He visto varios post bastantes interesantes pero no he dado con la clave.

Porque mi consulta es diferente dependiendo de los checkbox que marques, ademas de que hace la busqueda en 5 tablas diferentes, tambien dependiendo de lo que marques, y estas 5 tablas los campos no se llaman igual.


Entonces no se como hacerlo, no lo tengo muy enfocado. He visto y probado con un FOREACH recorriendo todas las tablas metidas dentro de un array, pero no funciona porque los campos no son iguales en todos.

Lo que si tengo claro y hecho es esto:

Código:
if(isset($_POST['sector_categoria'])){
         $consulta ="tipo_categoria LIKE '%".$palabra_a_buscar."%' AND ";
	   }
if(isset($_POST['sector_comercio'])){
        $consulta .= "sector_comerciante LIKE '%".$palabra_a_buscar."%' AND ";
}
if(isset($_POST['checkbox_oferta'])){
			$consulta .="breve_descripcion LIKE '%".$palabra_a_buscar."%' AND descripcion_extendida LIKE '%".palabra_a_buscar."%' AND ";
}
if(isset($_POST['checkbox_zona'])){
			$consulta .="zona LIKE '%".$palabra_a_buscar."%' AND ";
}
 if(isset($_POST['checkbox_perfil'])){
			$consulta .="usuario_comerciante LIKE '%".$palabra_a_buscar."%' AND ";
}
 if(isset($_POST['checkbox_comentario'])){
			$consulta .="comentario LIKE '%".$palabra_a_buscar."%' AND ";
}
if(isset($_POST['checkbox_usuario'])){
			$consulta .="usuario_cliente LIKE '%".$palabra_a_buscar."%'";
}
Muchas gracias y a ver si me podeis dar alguna idea. Un saludo.