Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2005, 11:26
futuresoldier
 
Fecha de Ingreso: enero-2003
Ubicación: Asunción
Mensajes: 48
Antigüedad: 21 años, 4 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