Foros del Web » Programando para Internet » PHP »

busqueda parametros no obligatorios

Estas en el tema de busqueda parametros no obligatorios en el foro de PHP en Foros del Web. Ya me da verguenza de tanto pregutnar... Estoy haciendo un buscador y hay varios campos obligatorios de busqueda como tipo de inmueble y operacion y ...
  #1 (permalink)  
Antiguo 02/11/2006, 06:54
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 18 años, 1 mes
Puntos: 0
Exclamación busqueda parametros no obligatorios

Ya me da verguenza de tanto pregutnar...
Estoy haciendo un buscador y hay varios campos obligatorios de busqueda como tipo de inmueble y operacion y provincia,
SELECT * FROM DAT_Inmueble WHERE IdProvincia='$provincia' AND IdTipoInmueble='$tipo_inmueble' AND IdTipoOperación='$tipo_operación'

pero hay campos que no son obligatorios como poblacion, superficie, precio max y min.
Mi pregunta es si en caso de un parametro no es obligatorio como lo incluyllo en la busqueda
compruebo si ha seleccionado la poblacion
if(!$población=trim($_GET['población'])){
echo("población no espicificada");
$población=cualquiercadena;}
else
{echo($población);}

como hago $población=cualquiercadena sea valida; para luego en la busqueda
SELECT * FROM DAT_Inmueble WHERE IdProvincia='$provincia' AND IdTipoInmueble='$tipo_inmueble' AND IdTipoOperación='$tipo_operación' AND
IdPoblacion='$poblacion´
  #2 (permalink)  
Antiguo 02/11/2006, 09:09
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 10 meses
Puntos: 10
Hola!
para las busquedas no obligatorias, es decir las q el usuario decide si quiere o no clasificar el resultado por ese campo, en tu caso solo tienes q asignar un AND poblacion=".$idpoblacion." a una variable!

es decir:
compruebas si existe el campo:
Código PHP:
if ($_GET[poblacion] != ''){
$WHERE " AND poblacion = '$_POST[poblacion]'";

si existe haces el where sino existe esa variable no tendra valor.

y en tu consulta solo tienes q añadir esa variable:
Código PHP:
$sql="SELECT * FROM DAT_Inmueble 
        WHERE IdProvincia='$provincia' AND IdTipoInmueble='$tipo_inmueble' 
        AND IdTipoOperación='$tipo_operación' 
        $WHERE"

espero q sea esto lo q pedias...
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 02/11/2006, 09:10
 
Fecha de Ingreso: octubre-2006
Mensajes: 34
Antigüedad: 18 años, 1 mes
Puntos: 0
Facil contruyendo la sql con una cadena dependiendo de los parametros:

if ($_GET['poblacion']!="") $where.=" AND poblacion='$_GET[poblacion]'";
if ($_GET['inmueble']!="") $where.=" AND inmueble='$_GET[inmueble]'";
...
...
..

$sql="SELECT * FROM DAT_Inmueble WHERE 1=1 $where";
  #4 (permalink)  
Antiguo 03/11/2006, 04:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias chicos. Pense si pones en busqueda $variable = ¨¨ solo va a buscar campos vacios.
Tengo otra duda en al busqueda
Hay ua tabla con 30 columnas, y los valores en ellos son solo 0 o 1.
Es descripcion de inmueble. Por ejemllo si columna ¨terrasa¨ tiene valor 0 es que no tiene inmuble terrasa y si es 1 lo tiene.
Si yo nesesito sacar solo campos donde hay 1 como puedo hacer lo sin nombrar todos 30 campos , osea
select form .... where campo1=1 and campo2=1 and ,..... campo 30=1
y cuando saca que yo sepa que valores saca (nopmbre del campo que tiene valor 1)
Alo mejor pido demasiado de sql.
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 13:01.