Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/01/2010, 15:27
Leogl
 
Fecha de Ingreso: noviembre-2009
Mensajes: 113
Antigüedad: 15 años, 2 meses
Puntos: 0
Condicionales if en mysql con php

Hola estoy haciendo un proyectito y tengo una duda.
Estoy intentando hacer un cron que recorra la base y verifique que los registros que emitidos a una cierta fecha, al pasar 4 dias, cambien el estado.
E pensado en hacer que cada dia se ejecute una condicion que al llegar a 4, deje de hacerlo y que otra condicion que a todos los que tengan 4, dias le cambie el estado, se me complica aqui porque hay varios, registros con diferentes fechas, otro que pense es usar esto,
Código PHP:
Ver original
  1. // Estable condicion Si el valor es menor nos muestra que no se ejecuta.
  2. <?
  3. if ($int_nodias<="4") {
  4.  
  5. aqui deberia hacer la consulta que incremente dias intimaciones en 1 hasta llegar a cuatro, pero incremente solo los que no han alcansado ese valor, cuando llegue a 4 ya no deberia cambiar.
  6.  
  7.   echo "Los dias no alcanzan."; //puse esto para probar....
  8. }
  9.  
  10. // Si el valor es diferente ejecuta la condicion.
  11.  
  12. else {
  13.  
  14. $sql = "SELECT id FROM infraccion WHERE intimaciones='4'";
  15. $result = mysql_query($sql);
  16. $ids = array();
  17.  
  18. // creamos la lista de los IDs a comparar
  19. while ($row = mysql_fetch_assoc($result)) $ids []= $row['id'];
  20.  
  21. // los usamos finalmente con el operador IN()
  22. $sql = "UPDATE infraccion SET estado = '2-Intimacion' WHERE id IN(" . join(', ', $ids) . ")";  
  23.  
  24.  
  25.  
  26.  
  27.   echo "RegistrosActualizados.";
  28. }
  29. ?>

por otro lado me dijeron que tambien puedo hacer la condicion directamente en el mysql,

Código PHP:
Ver original
  1. //·······obtiene diferencias entre fechas desde el mysql
  2. //SELECT DATEDIFF(fecharesolucion, fechainfraccion) AS diferencia FROM infraccion
  3.  
  4.  
  5.  
  6.  
  7.  
  8. //SELECT to_days(entrega) - to_days(fecha) as diferencia
  9. //FROM trabajos
  10. //WHERE peticion =375
  11. //TO_DAYS(fecha) devuelve la cantidad de días que transcurrieron desde una fecha (creo que desde el 1970-01-01)
  12. //___________

el problema de eso qu eno se como usarla, la fecha actual la tomaria de la variable $fecha que devuelve la fecha actual.

o la ultima que me dijeron es que puedo usar los condicionales IF en mysql que seria muy bueno x que con una sola consulta resuelvo tdo y ahorro codigo.

Quisiera algun concejo x ahi, para guiarme mejor. para resolver este problema