Ver Mensaje Individual
  #11 (permalink)  
Antiguo 01/06/2009, 16:47
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Por mas que busco no encuentro FECHAS

Cuando haces una consulta como la que te comente:
SELECT * FROM usuarios WHERE DATEDIFF(fechaFinal, fechaInicial) < 16
Solamente traerá los registros próximos a la renovación y los que ya estan vencidos.

Haz una consulta del tipo:
SELECT * FROM usuarios WHERE DATEDIFF(fechaFinal, fechaInicial) < 16 AND DATEDIFF(fechaFinal, fechaInicial) > 0

Eso te dara los registros que estan por expirar, pero no han expirado.
Lo que haces para enviarles un mensajes, es simplemente recoger la consulta usando mysql_fetch_assoc() y en cada vuelta del bucle vas mandando un correo o lo que desees.

Para los registros que ya han expirado, y quieres saber hace cuanto han expirado, tienes que hacer algo mas o menos parecido a esto:

SELECT *, DATEDIFF(fechaFinal, fechaInicial) AS diferencia FROM usuarios WHERE diferencia < 0

Donde ahora, el campo llamado "diferencia" (que es un alias) contendrá el numero de días que lleva expirada la cuenta, en un valor negativo.
Recoge los datos con mysql_fetch_assoc() y luego vas mandando un correo avisandole el numero de dias que lleva la cuenta expirada.
Recuerda que tienes que pasar el valor del campo "diferencia" a positivo, puedes usar la funcion abs() (Para obtener el valor absoluto).