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

Cumpleaños en php y mysql. Formato de fecha. No funciona

Estas en el tema de Cumpleaños en php y mysql. Formato de fecha. No funciona en el foro de Mysql en Foros del Web. Hola gente del foro, hace rato estoy tratando de mostrar los cumpleaños del día en un sitio. Tenia un sistema con javascript que se cambiaba ...
  #1 (permalink)  
Antiguo 13/10/2005, 11:26
 
Fecha de Ingreso: enero-2003
Ubicación: Asunción
Mensajes: 48
Antigüedad: 21 años, 3 meses
Puntos: 1
Cumpleaños en php y mysql. Formato de fecha. No funciona

Hola gente del foro, hace rato estoy tratando de mostrar los cumpleaños del día en un sitio. Tenia un sistema con javascript que se cambiaba según la fecha pero se podía ver los cumpleaños futuros cambiando la fecha de la pc además no funcionaba en todos los navegadores.

Bueno, tengo una tabla donde guardo los datos básicos de las personas.


Código:
CREATE TABLE `clientes` (
    `ID_CLIENTE` tinyint(4) NOT NULL default '0',
    `NOMBRE_CLIENTE` varchar(30) default NULL,
    `APELLIDO_CLIENTE` varchar(30) default NULL,
    `FECHA_NACIMIENTO_CLIENTE` date default NULL
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Y después tengo en mi pagina un select muy sencillo que saque del sitio de mysql.



Código:
SELECT NOMBRE_CLIENTE, APELLIDO_CLIENTE, RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) , RIGHT(CURDATE(),5)
  FROM `clientes`
  WHERE RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) = RIGHT(CURDATE(),5)
  ORDER BY NOMBRE_CLIENTE ASC
Tb probe este otro.


Código:
SELECT NOMBRE_CLIENTE, APELLIDO_CLIENTE, RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) , RIGHT(CURDATE(),5)
  FROM `clientes`
  WHERE RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) = colname
  ORDER BY NOMBRE_CLIENTE ASC
Donde colname es una variable de servidor donde obtengo la fecha.


Código PHP:
<?php 
   
  
// DDMM - Variable dia y mes de hoy
  // Para probar los cumpleaños de maña
   
  // 1
  
$_SERVER['DDMM'] = (date("d-m"));
   
  
// 2
  // $_SERVER['DDMM'] = '14-10';
   
  
?>
   
  <?php
  $colname_cumples 
"-1";
  if (isset(
$_SERVER['DDMM'])) {
    
$colname_cumples = (get_magic_quotes_gpc()) ? $_SERVER['DDMM'] : addslashes($_SERVER['DDMM']);
  }
  
mysql_select_db($database_emg_cumples$emg_cumples);
$query_cumples sprintf("SELECT NOMBRE_CLIENTE, APELLIDO_CLIENTE, RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) , RIGHT(CURDATE(),5) FROM `clientes` WHERE RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) = %s ORDER BY NOMBRE_CLIENTE ASC"$colname_cumples);
  
$cumples mysql_query($query_cumples$emg_cumples) or die(mysql_error());
  
$row_cumples mysql_fetch_assoc($cumples);
  
$totalRows_cumples mysql_num_rows($cumples);
  
?>
Pero ninguno me funciona correctamente. O sea. Algunos dias funcionan y otros no.
Por ejemplo. Los primeros días del mes cuando las fechas son 1,2,3,4,5,6 no me funcionan pero cuando son 10,11,12 (ya con dos digitos) sin funciona.

Lo que necesito es algo que funcione siempre y que no me ocupe de cambiar las fechas sino solo cargar la base de datos.

Creo que es un problema con el formato de fechas que a veces me trae dd-mm y otras mm-dd y por eso no puede filtrar.

Espero puedan ayudarme si alguien tiene experiencia
  #2 (permalink)  
Antiguo 13/10/2005, 14:45
 
Fecha de Ingreso: enero-2003
Ubicación: Asunción
Mensajes: 48
Antigüedad: 21 años, 3 meses
Puntos: 1
Hola, alguien puede darme una mano? Es urgente

Hola, alguien puede darme una mano? Es urgente. se que es muy sencillo para algun experto en php y mysql pero no me funciona correctamente

Última edición por futuresoldier; 14/10/2005 a las 08:08
  #3 (permalink)  
Antiguo 20/10/2005, 08:04
 
Fecha de Ingreso: enero-2003
Ubicación: Asunción
Mensajes: 48
Antigüedad: 21 años, 3 meses
Puntos: 1
ya resolvi el problema

el problema estaba en la parte del where que decia
WHERE RIGHT(FECHA_NACIMIENTO_CLIENTE, 5) = RIGHT(CURDATE(),5)
esto me devolvia FECHA_NACIMIENTO_CLIENTE, 5 : 10-20 y RIGHT(CURDATE(),5 : 10-20 esa es la forma correcta pero si yo ponia en vez de RIGHT(CURDATE(),5) directamente un '10-20' me traia todos los cumpleaños que contenian un 0 1 2 en cualquier orden. gracias de todos modos
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

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 02:25.