Ver Mensaje Individual
  #33 (permalink)  
Antiguo 23/01/2009, 17:23
Avatar de hoberwilly
hoberwilly
 
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Mensaje de cumpleaños - fecha de nacimiento

Hola a todos, este es el codigo trabajado:
Código php:
Ver original
  1. <!-- <?php
  2. include('conec.php');
  3. conectarse();
  4. $dia1=date('j');
  5. $mes1=date('n');
  6.  
  7. $mes=date('m');
  8. $hoy=date('d');
  9. $hoy=$hoy+1;
  10. $cincoDias=$hoy+15;
  11. $ultimoDiaDelMes=date('t');
  12. $proximoMes=$mes+1;
  13. //print_r($proximoMes);
  14. $primerDiaProximoMes=1;
  15. $cincoDiasMenosCantidadYaContada=$cincoDias-($ultimoDiaDelMes - $primerDiaProximoMes);
  16.  
  17. $sql="SELECT alupat,alunom FROM datos WHERE DAYOFMONTH(alunac)='$dia1' AND MONTH(alunac)='$mes1'";
  18. $sql2="SELECT alupat,alunom FROM datos WHERE MONTH(alunac)='$mes' AND (DAYOFMONTH(alunac) BETWEEN '$hoy' AND '$cincoDias')";
  19. $sql3="SELECT alupat,alunom FROM datos
  20.       WHERE (MONTH(alunac)='$mes' AND (DAYOFMONTH(alunac) BETWEEN '$hoy' AND 'ultimoDiaDelMes'))
  21.       OR (MONTH(alunac)='$proximoMes' AND (DAYOFMONTH(alunac) BETWEEN '$primerDiaProximoMes' AND '$cincoDiasMenosCantidadYaContada'))";
  22.  
  23. $registros=mysql_query($sql) or die("Error1:" .mysql_error() );
  24. $registros2=mysql_query($sql2) or die("Error2:" .mysql_error() );
  25. $registros3=mysql_query($sql3) or die("Error3:" .mysql_error() );
  26. ?>
  27. <html>
  28. <head>
  29. <title>Top</title>
  30. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  31. </head>
  32. <body background="titlebar-active.png">
  33. <table>
  34.     <?php
  35.     while($row=mysql_fetch_assoc($registros))
  36.     {
  37.     ?>
  38. <tr>
  39. <td><?php echo "Hoy cumple años ".ucwords(strtolower($row['alunom']))." ".ucwords(strtolower($row['alupat'])) ?></td>
  40. </tr>
  41.     <?php
  42.     }
  43.     ?>
  44.     <?php
  45.     while($row2=mysql_fetch_assoc($registros2))
  46.     {
  47.     ?>
  48. <tr>
  49. <td><?php echo "Proximos cumpleaños: ".ucwords(strtolower($row2['alunom']))." ".ucwords(strtolower($row2['alupat'])) ?></td>
  50. </tr>
  51.     <?php
  52.     }
  53.     ?>
  54.     <?php
  55.     while($row3=mysql_fetch_assoc($registros3))
  56.     {
  57.     ?>
  58. <tr>
  59. <td><?php echo "Proximos cumpleaños: ".ucwords(strtolower($row3['alunom']))." ".ucwords(strtolower($row3['alupat'])) ?></td>
  60. </tr>
  61.     <?php
  62.     }
  63.     ?>
  64. </table>
  65. </body>
  66. </html> -->
Solo falta la ultima parte que menciona Ronruby: (Ah, tambien tienes que tener en cuenta otro caso mas aparte de los dos que te dije.
Si el mes aumenta, pero el dia final es el 1er dia del mes que viene, no hay porque usar BETWEEN.
)...esto te refieres a que si un usuario tiene de fecha nac: 2009/02/01???.
De ser asi,
1. se utilizaria otra consulta ($sql4???)
2. que between no hay que usar
Y otra cosa k no me esta cuadrando es k las impresiones salen de la sgte manera:
Proximos cumpleaños: Paulina Luisa Delgado
Proximos cumpleaños: Victor Alexander Salazar
Proximos cumpleaños: Santos Grimaneza Vega
Proximos cumpleaños: Camila Siccha
Me solicitan que impriman: Proximos cumpleaños: Usuario1,Usuario2,Usuario3,Usuario4

Gracias,