Foros del Web » Programando para Internet » PHP »

Sentencia Where

Estas en el tema de Sentencia Where en el foro de PHP en Foros del Web. Hola a todos otra de novato Tengo que comparar una fecha que viene de un formulario con otra que esta en una BD, lo hago ...
  #1 (permalink)  
Antiguo 03/12/2003, 14:12
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Sentencia Where

Hola a todos otra de novato

Tengo que comparar una fecha que viene de un formulario con otra que esta en una BD, lo hago asi pero no pasa nada

$result=mysql_db_query("test","Select * from espanol_reserved where ($FechaIn < CheckIn)");

$FechaIn es lo que viene del FORM y CheckIn es el campo de la BD.


Gracias de antemano
  #2 (permalink)  
Antiguo 03/12/2003, 14:33
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
acuerdate que la fecha es tomada como una cadena asi que debes de comparar como si fuera una cadena es decir:

$sql = "SELECT * from espanol_reserved where \"$FechaIn\" < \"CheckIn\" ";

$result = mysql_query($sql,"test");

o bien

$sql = "SELECT * from espanol_reserved where '$FechaIn' < 'CheckIn' ";

con simple comilla
  #3 (permalink)  
Antiguo 04/12/2003, 07:46
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Bueno, ahora no me salta error, pero no me cumple con el where, CheckIn es el campo de la BD (2003-10-20), y la variable que viene del formulario es FechaIn, le pongo cualquier fecha y siempre me imprime los datos.

Gracias de antemano
  #4 (permalink)  
Antiguo 04/12/2003, 08:22
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 200
Antigüedad: 14 años, 10 meses
Puntos: 1
ummm. que tal si pruebas con el formato "Ymd" (o con el que prefieras) y tu campo donde guardas la fecha (checkln) la modificas con mkdate (segun formato a comparar) asi date("Ymd", mktime(0,0,0,$mes,$dia,$ano)) de esta manera ambas cadenas de fechas estan del mismo formato y para compararlas utilizo interval (funcion de MySQL). proba y me cuentas
  #5 (permalink)  
Antiguo 04/12/2003, 09:46
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Uff me mataste, soy muy novato en esto de PHP, por supuesto, no quiero el codigo solo que me amplies un poco mas la explicación.

Mil gracias...
  #6 (permalink)  
Antiguo 04/12/2003, 10:20
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
te dice que hagas esto:

$FechaIn=date("Y/m/d", mktime(0,0,0,$mes,$dia,$ano)) ;

esto transforma la FechaIn en el formato: año/mes/dia para que quede igual que el formato de mysql. Implica recibir la fecha en tres campos de formulario, no en 1. Si lo tienes en un campo deberas usar la funcion substring() para obtener el dia, mes y año.

luego creas el query asi:

$sql = "SELECT * from espanol_reserved where CheckIn>= '$FechaIn' ";

cambie el orden de los operandos.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #7 (permalink)  
Antiguo 14/12/2003, 13:12
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Sigo con el mismo problema, no me cumple con el where, envio los datos por separado dia, mes año y despues los recogo como me indicaron

$FechaIn=date("Y/m/d", mktime(0,0,0,$_SESSION['START_MONTH'],$_SESSION['START_DAY'],$_SESSION['START_YEAR'])) ;

Escribo esta sentencia
"SELECT * FROM espanol_reserved where CheckIn > '$FechaIn' ORDER BY id LIMIT $inicial,$cantidad";

En la BD tengo el campo ChecvkIn como DATE y las fechas aparecen asi Ej.: 2003-10-21

y nada...
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 09:06.