Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con el WHERE sql

Estas en el tema de problema con el WHERE sql en el foro de Mysql en Foros del Web. Tengo la siguiente consulta a una base de datos, el problema está en el "dia", la tabla me muestra los días mayores o iguales, por ...
  #1 (permalink)  
Antiguo 25/07/2011, 07:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 13 años, 11 meses
Puntos: 1
problema con el WHERE sql

Tengo la siguiente consulta a una base de datos, el problema está en el "dia", la tabla me muestra los días mayores o iguales, por lo tanto, si paso al mes siguiente no me muestra los primeros días porque son menores. No sé si me he explicado bien, aquí les dejo el código, a ver si me pueden ayudar. Gracias.


Código PHP:
<?php
$dia 
date('d');
$mes date('m');
$ano date('Y');
$result mysql_query("SELECT * FROM calendario WHERE dia >= '".$dia."' AND mes >= '".$mes."' AND ano >= '".$ano."' ORDER BY ano
?>

Última edición por GatorV; 25/07/2011 a las 08:07
  #2 (permalink)  
Antiguo 25/07/2011, 08:06
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: problema con el WHERE sql

Saludos

Exactamente que es lo que necesitas, realmente no es clara tu duda!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 25/07/2011, 08:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con el WHERE sql

Es probable que te resulte mejor si lo que haces es preguntar por la fecha y no por sus componentes separados...
Además no resulta muy eficiente tener una fecha en una tabla fragmentada en dia, mes y año, no sólo porque ocupas innecesariamente más espacio, sino que (como en este caso) te complican las consultas.
Pruébalo así:
Código PHP:
Ver original
  1. $result = mysql_query("SELECT * FROM calendario WHERE DATE(CONCAT(ano, '-', mes, '-', dia)) dia >= '".$ano."-".$mes."-".$dia."' ORDER BY ano ASC,mes ASC, dia ASC LIMIT 1");
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 25/07/2011, 08:10
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: problema con el WHERE sql

Antes la tenia junta pero me resultaba mas complicado ordenar la consulta. Si la pongo en una misma tabla "fecha" del estilo "01/01/2000", ¿Cómo podría hacer lo que pretendo?
  #5 (permalink)  
Antiguo 25/07/2011, 08:14
 
Fecha de Ingreso: octubre-2010
Mensajes: 123
Antigüedad: 13 años, 5 meses
Puntos: 10
Respuesta: problema con el WHERE sql

Pues te dire que es bastante dificíl hacerlo como tu dices.. mi recomendacion es que en ves de guardar los valores en 3 columnas diferentes lo hagas completamente..

Crear una columna con el atributo "date"
y al momento de guardar o buscar sera del siguiente formato.

(Y-m-d)
Código PHP:
$buscar date("Y-m-d"time()); 
  #6 (permalink)  
Antiguo 25/07/2011, 08:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con el WHERE sql

No. No podrás porque ese formato sólo lo podrías poner en un VARCHAR y se interpretaría como cadena de texto. El ordenamiento como fecha sería un espanto de complicaciones y resultados.
Además, si tenías problemas para ordenar eso no significaba que debías cambiar un campo DATE por tres INT. En todo caso deberías haber afinado la consulta para resolver el problema.
¿O es que lo tenías como VARCHAR?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 25/07/2011, 08:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: problema con el WHERE sql

pero si le pongo el formato date me pondrá la fecha al revés ¿no?, así: 0000-00-00 y me interesa que vaya normal...
  #8 (permalink)  
Antiguo 25/07/2011, 08:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con el WHERE sql

La salida es tema de la consulta, no del almacenamiento. Cada cosa tiene su forma de obtenerlo y su razón de ser.
Simplemente hubieses debido usar DATE_FORMAT(campo, '%d/%m/%Y). Nada más.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 25/07/2011, 08:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con el WHERE sql

Piensa que por algo existen los campos DATE y DATETIME...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 25/07/2011, 08:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: problema con el WHERE sql

si si, disculpa mi ignorancia. Estoy intentando continuarlo, si no puedo vuelvo a postear. Gracias

Etiquetas: php, sql, tabla
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 10:06.