Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/08/2008, 07:25
ilie
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Como Hacer Un Buscador Avanzado

Supongo que los datos a buscar están en la misma tabla.
Lo primero que debes hacer cuando es generar la condición WHERE que es la que determinará qué datos "buscar". Para ello puedes hacerlo por partes:

Código PHP:
//
$sql "SELECT dato1,... FROM tabla WHERE";
$masUnElemento 0;
//Para cada una de las cajas:
if(trim($caja1) != ""){
  
$sql.=" elemento1 LIKE '$caja1' ";
  
$masUnElemento++;
}
if(
trim($caja3) != ""){
  if(
$masUnElemento){$sql.=" AND";}
  
$sql.=" elemento2 LIKE '$caja2' ";
  
$masUnElemento++;
}
if(
trim($caja3) != ""){
  if(
$masUnElemento){$sql.=" AND";}
  
$sql.=" elemento2 LIKE '$caja2' ";
  
$masUnElemento++;
}
if(
trim($caja4) != ""){
  if(
$masUnElemento){$sql.=" AND";}
  
$sql.=" elemento2 LIKE '$caja4' ";

Donde caja1, caja2... corresponde al contenido introducido en cada caja; elemento1, elemento2... a cada uno de los campos a comparar; dato1, dato2 ... cada uno de campos que desees mostrar; y tabla el nombre de la tabla donde estén almacenados.

En este momento tu query será del estilo:

$sql = "SELECT elemento1, ... FROM tabla WHERE ...";
Si quieres añadir algo más a la query (el orden o el número de elementos) sólo tienes que concatenar ($sql .= " ORDER BY ..." por ejemplo).

Recuerda comprobar que algún elemento por lo menos ha sido rellenado.
La función trim() eliminará los espacios en blanco que haya antes y después da cada caja.