Foros del Web » Programando para Internet » PHP »

formulario con campos opcionales para busqueda sql

Estas en el tema de formulario con campos opcionales para busqueda sql en el foro de PHP en Foros del Web. eh realizado un formulario de busqueda, en el cual las variables que se recojen del mismo se utilizan dentro de una sentencia "select" para mostrar ...
  #1 (permalink)  
Antiguo 03/09/2006, 08:51
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 3 meses
Puntos: 0
formulario con campos opcionales para busqueda sql

eh realizado un formulario de busqueda, en el cual las variables que se recojen del mismo se utilizan dentro de una sentencia "select" para mostrar la infomracion que corresponda de la base de datos.

ahora mi porblema es, como hago para que si no se introucen valores en alguno de los campos del formulario (campos no obligatorios), igualmente se ejecute el "select" y me realize la busqueda.

aqui le dejo el codigo que estoy utilizando

Código PHP:
$busqueda=mysql_query("select * from propiedades where zona=$zonas
 and tipo=$tipo and $modo between $min1 and $max1 and 
dormitorios between $min2 and $max2 and estado <> 0"

  #2 (permalink)  
Antiguo 03/09/2006, 09:00
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 1 mes
Puntos: 20
Quizá poniendo automáticamente comodines en aquellos campos que estén vacíos. No estoy muy seguro.
  #3 (permalink)  
Antiguo 03/09/2006, 09:02
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 3 meses
Puntos: 0
si por comodines te referis a que las variables tomen el valor '*' lo eh probado ya pero no me dio resultado....

Última edición por GPS; 03/09/2006 a las 09:03 Razón: aclaracion
  #4 (permalink)  
Antiguo 03/09/2006, 09:07
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 7 meses
Puntos: 0
Primero montaría la consulta base y luego concatenaría cada uno de los filtros del WHERE. Si no tienes nunguna condición fija (en tu caso creo que tienes el estado <> '0') entonces puedes usar un WHERE 1. Esto lo digo porque luego para concatenar los filtros es cómodo empezarlos siempre con AND. Para saber si tienes valores o no del formulario, utiliza isset(). Si evalúa a cierto entonces concatenas el filtro, Si no, no concatenas nada.

Por ejemplo, suponiendo que sólo tienes el filtro zona, sería algo como esto:
Código PHP:
$SQL "select * from propiedades where estado <> 0";
if (isset(
$zonas))
  
$SQL .= " AND zona='$Zona';
// Y así con los demás...
$busqueda=mysql_query($SQL); 
  #5 (permalink)  
Antiguo 03/09/2006, 09:13
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 1 mes
Puntos: 20
Más que ISSET, yo usaría:

Código PHP:
if (!empty($zona)) 
Porque una variable puede estar definida, pero vacía. La idea de GikaJavi es la buena.
  #6 (permalink)  
Antiguo 03/09/2006, 09:56
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 3 meses
Puntos: 0
excelente!, muchas gracias a ambos. combiando lo que los dos me han dicho eh logrado exactamente lo que queria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.