Foros del Web » Programando para Internet » PHP »

where

Estas en el tema de where en el foro de PHP en Foros del Web. Hola chicos. Como puedo validar siguiente criterio? tengo 2 campos en la table de descripcion de inmueble primero - numero habitaciones sencillas segundo - numero ...
  #1 (permalink)  
Antiguo 15/11/2006, 09:28
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
where

Hola chicos. Como puedo validar siguiente criterio?
tengo 2 campos en la table de descripcion de inmueble
primero - numero habitaciones sencillas
segundo - numero habitaciones dobles
en la busqueda
si selecciona en un select minimum habiaciones , sera suma de habitaciones sencillas y dobles
o sea si minimum habitaciones es 2 tenemos que comprobar que suma de 2 campos es =>2
es la consulta de busqueda
$total_registros=mysql_query("SELECT count(*) FROM dat_inmueble WHERE IdProvincia='$provincia' AND IdTipoInmueble like '%$tipo_inmueble%' AND IdTipoOperacion='$tipo_operación' $WHERE and sum(Hdobles_num, Hsimples_num)=>'$num_hab' l imit $start, $pnumber ");
Me ignora el criterio sum(Hdobles_num, Hsimples_num)=>'$num_hab'
  #2 (permalink)  
Antiguo 15/11/2006, 09:43
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 5 meses
Puntos: 5
WHERE es una palabra reservada del lenguaje SQL, por eso te da error

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #3 (permalink)  
Antiguo 15/11/2006, 10:36
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 4 meses
Puntos: 1
Cita:
Iniciado por Korku Ver Mensaje
WHERE es una palabra reservada del lenguaje SQL, por eso te da error

Saludos
Hola, tienes toda la razón en lo que dices pero no creo que ese sea el problema, ya que él usa la variable $WHERE que esté dentro del ámbito de php y no de mysql. Para evitar posibles problemas yo construiría la sentencia antes de pasarsela a mysql_query().
Código PHP:
$sql "SELECT count(*) FROM dat_inmueble WHERE IdProvincia='".$provincia."' AND IdTipoInmueble like '%".$tipo_inmueble."%' AND IdTipoOperacion='".$tipo_operación."' ".$WHERE." and sum(Hdobles_num, Hsimples_num)=>'".$num_hab."' limit ".$start.", ".$pnumber."";
$total_registros=mysql_query($sql); 
Así todo, comprueba con echo $sql que la sentencia que se ejecuta es la esperada. Ciao
__________________
http://www.nosoynadie.net/
  #4 (permalink)  
Antiguo 15/11/2006, 15:01
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
La variable $Where lo lea la consulta pefectamente, ya que si efectivamente es una varable de php
que se genera en la web asi mas o menos
if($_GET['varible']!=""){WHERE.="AND Idcolumna='$_GET['varible']'";
El problema no es esa.
si no que no me funciona el criterio
AND SUM(nombrecolumna1, nombrecolumna2)>='$var'

como puedo poner el criterio "donde la suma registo de columna 1 y registr de columna 2 >= algun valor de varible" dentro del criterio WHERE
  #5 (permalink)  
Antiguo 15/11/2006, 16:26
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 4 meses
Puntos: 1
Hola,

puede sonar a chorrada pero ¿puedes poner un ejemplo real de una consulta? Estaba pensando que quizas alguna de las sentencias del WHERE sea demasiado genérica, de modo que provoque que sean incluidos más registros de los necesarios.
__________________
http://www.nosoynadie.net/
  #6 (permalink)  
Antiguo 16/11/2006, 03:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Si claro!
primero la web es (esta en desarollo jeje)
www.acorem.es/inmobiliaria.php
este es el codigo (no completo claro)
$tipo_operación=trim($_GET['operación']);
$tipo_inmueble=trim($_GET['tipo_inmueble']);
$provincia=trim($_GET['provincia']);

$población=trim($_GET['población']);
if ($población != ''){
$WHERE.= " AND IdPoblacion = '$población'";
}

//precio desde

$precio_desde=trim($_GET['precio_desde']);

if($precio_desde=='')
{$precio_desde=0;
}

//precio hasta
$precio_hasta=trim($_GET['precio_hasta']);
if ($precio_hasta != ''){
$WHERE.= " AND PrecioEur BETWEEN '$precio_desde' AND '$precio_hasta'";
}
if ($precio_hasta==''){$WHERE.= " AND PrecioEur > '$precio_desde'";}

//num habitaciones

$num_hab=trim($_GET['num_hab']);




//superficio_min
$superficie_min=trim($_GET['superficie_min']);
if ($superficie_min != ''){
$WHERE.= " AND SuperficieTotal > '$superficie_min' ";
}


//foto si/no
$foto=$_GET['foto'];

if ($foto == 'on'){
$WHERE.= " AND Foto1 != 'NULL' ";
}

$resultado=mysql_query("SELECT * FROM dat_inmueble WHERE IdProvincia='$provincia' AND IdTipoInmueble like '%$tipo_inmueble%' AND IdTipoOperacion='$tipo_operación' AND sum(Hdobles_num, Hsimples_num)=>'$num_hab' $WHERE limit $start, $pnumber ");
$articulos=mysql_fetch_array($resultado);

me busca bien, pero ignora numero de habitaciones minimo
  #7 (permalink)  
Antiguo 16/11/2006, 07:05
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 4 meses
Puntos: 1
Hola,

estuve mirando la web y he visto algunas cosas:

El problema de que no te busque como deseas puede ser debido a que mysql se la pega en la condición anterior (dentro del WHERE) Esto es debido a los valores que le llegan dentro de la variable $tipo_inmueble
Código:
&tipo_inmueble=83033269425.1798
Esto esta provocado por los posibles valores que tienes en el select para tipo de inmueble. Esto está sacado de tu código html:

Código HTML:
<select name="tipo_inmueble" size="1" class="select">
    <option value="0"> selecciona el tipo de inmueble </option>
    <option value="3">Piso</option>
    <option value="4">Casa</option>
    <option value="5">Solar</option>
    <option value="7">Local comercial</option>
    <option value="8">Párking</option>
    <option value="82753628180.1798">Ático</option>
    <option value="82975021057.1798">Casa aíslada</option>
    <option value="83033269425.1798">Autopromoción</option>
    <option value="83043408317.1798">Dúplex</option>
    <option value="86663170059.1798">Apartamento</option>
</select> 
Fijate y verás que en los valore que traes de la base de datos para los identificadores de los tipos de piso hay un problema (comprueba el tipo de campo al que está vinculado en la base) Creo que si solventas este problema todo se arreglaré.

Otra cosa, no utilices acentos en los nombre de los campos de formulario:
Código HTML:
<select name="operación" size="1" class="select" onchange="red2();"> 
te ahorras multitud de problemas.
Código HTML:
<select name="operacin" size="1" class="select" onchange="red2();"> 
Prueba y cuentanos
__________________
http://www.nosoynadie.net/
  #8 (permalink)  
Antiguo 16/11/2006, 08:13
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Movido a PHP, hay que saber bien si una pregunta es para BD o para PHP.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #9 (permalink)  
Antiguo 16/11/2006, 14:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Hola de nuevo!
El tipo de inmueble se busca de forma correcta y dentro de base de datos
los id de inmuebles son estos
4
5
7
8
82753628180.1798
82975021057.1798
83033269425.1798
83043408317.1798
86663170059.1798
Son valores double que se generan con una formula y los primeros 4 inmuebles son del porgrama. y otros tipo 82753628180.1798 son propios de empresa .
EL tipo de inmueble me busca correctamente, lo que no me busca es criterio de sum de habitaciones min.
  #10 (permalink)  
Antiguo 17/11/2006, 03:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
solo quiero saber si el creterio de busqueda
and sum(Hdobles_num, Hsimples_num)=>'$num_hab'
es correcto, porque si no es correcto, el error esta claro, y si es correcto, debo investigar que es lo que pasa con variables....
  #11 (permalink)  
Antiguo 17/11/2006, 06:06
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 5 meses
Puntos: 5
A ver, veo que hay variables con acentos en el código PHP... prueba sin acentos, ya que ahorrarias muchos problemas.

Un consejo: Nunca utilizes carácteres como acentos o ñ al declarar variables en cualquier lenguaje de programación, así no te darías problemas.

Un saludo
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #12 (permalink)  
Antiguo 18/11/2006, 07:53
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
En el criterio AND sum(Hdobles_num, Hsimples_num)=>'$num_hab' no hay ninguna variable con acentos y es el unico criterio que no cumple, los otros que tienen acentos se cumplen perfectamente.
Sigo sin reslver la incidencia chicos, gacias de todos modos a todos
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 17:15.