Foros del Web » Programando para Internet » PHP »

Agenda de actividades

Estas en el tema de Agenda de actividades en el foro de PHP en Foros del Web. Hola chicos, cómo les va? Cuando no una consulta de nachorpo, ah? jejeje Bueno, en este momento estoy con una agenda de actividades que consta ...
  #1 (permalink)  
Antiguo 25/05/2005, 18:39
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 14 años
Puntos: 2
Agenda de actividades

Hola chicos, cómo les va?

Cuando no una consulta de nachorpo, ah? jejeje

Bueno, en este momento estoy con una agenda de actividades que consta con la siguiente técnica:

Se ingresan todas las actividades en una tabla, con un campo especial llamado "activo".
Este campo lleva un 0 (que hace que no se liste la actividad) o 1 para que sí se liste. Muchos me preguntarían ¿Por qué no haces una consulta por fecha y te ahorras ese campo? y yo les respondo:
con 50 eventos, no habría problema.. pero que pasa al año de actividad de la agenda.. quizás haya más de mil eventos agendados.. sería una consulta muy pesada para el servidor.

Ahora bien, el problema:
todas las actividades se cargan con "activo"=0 por defecto.
planeo hacer un archivo PHP que, diariamente, ejecute una consulta que tome las actividades "activo"=0 a realizarse de aquí a una semana y cambié su campo "activo" a 1. y luego, las "activo"=1 que ya hayan pasado tomen un valor 0 para que dejen de listarse.

pregunta: cómo puedo hacer para que este archivo PHP se ejecute solo sin que yo deba ejecutarlo vía web?? es posible??

muchas gracias.
  #2 (permalink)  
Antiguo 26/05/2005, 08:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Se ingresan todas las actividades en una tabla, con un campo especial llamado "activo".
Este campo lleva un 0 (que hace que no se liste la actividad) o 1 para que sí se liste. Muchos me preguntarían ¿Por qué no haces una consulta por fecha y te ahorras ese campo? y yo les respondo:
con 50 eventos, no habría problema.. pero que pasa al año de actividad de la agenda.. quizás haya más de mil eventos agendados.. sería una consulta muy pesada para el servidor.
mm ... todo es conversable .. y lo mejor es probarlo .. pero si o si ya tienes el proceso que más le cuesta a una BD que es el "filtrado" o "condición" .. (tu "flag" o basado en fecha) .. claro que un campo "indexado" para ese flag será algo más óptimo que usar una Fecha (igualmente indexado) .. pero si usas las funciones nativas de tratamiento de fechas de Mysql? (usas Mysql?) y los tipos de campo de fecha nativos ... mm habría que ver que tanta diferencia de proceso tienes .. Igualmente esa "fecha" la debes guardar si o si para otros propósitos.

--------------

Cita:
pregunta: cómo puedo hacer para que este archivo PHP se ejecute solo sin que yo deba ejecutarlo vía web?? es posible??
Usas windows? .. linux? como sistema operativo del servidor? .. Bueno, lo ideal es que crees un "Cron Job" (para Linux) o una Taréa progamada (en windows) para llamar a tu script en modo "CLI" (Command Line Interface) .. Tu "Cron Job" (o equivalente en el S.O. que use tu servidor) ya se encargará de llamar a tu script una sóla vez en el intervalo de tiempo que en el definas. Tu script PHP tan sólo tendrá que hacer esa consulta SQL que ya debes conocer como hacerla y la ejecutas tal vez ahora mismo "manualmente" llamando a ese script.


Un saludo,
  #3 (permalink)  
Antiguo 26/05/2005, 09:25
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 14 años
Puntos: 2
Hola Cluster, un gusto..
sí utilizo MySQL.
mi idea es que el archivo que cambia las flags se ejecute una vez al día, ya que sería trabajo de más.. es decir, el archivo "flags.php" hace las consultas correspondientes a las fechas con funciones nativas de mysql y en base a sus resultados altera o no los flags.
y luego, la consulta que todos los usuarios ven en el sitio sólo muestra los registros cuyo flag esté activo =).. jeje, me siento orgulloso de mi script (aunque claro es básico y más de uno habrá hecho cosas mejores)

ahora leeré respecto al cron job (ya que mi sitio se hospeda en un servidor linux).
muchas gracias =)
  #4 (permalink)  
Antiguo 26/05/2005, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas un servicio de hosting que no está bajo tu control .. los "Cron Job" .. o los tienes como una opción más en tu panel de control (cPanel o el que uses) o bien son los Srs. Administradores de tu servidor los que pueden hacerlo.

Si usas un panel de control con opción "Cron Job" .. puedes hacer la llamada a tus scripts (a ese "flags.php") tipo (donde dice "ejecutar comando .. o algo así"):

GET http://www.tusitio.tal/flags.php >/dev/null

(GET no es el único ni mejor comando para esto .. pero de esa forma no tienes que cambiar absolutamente nada de tu actual "flags.php" .. pues se "simula" una llamada a tu script como si una visita más fuese .. Eso sí .. no es lo más "seguro" .. pero tampoco ejecuta acciones "seguras" dicho script si es que lo ejecutas "a mano" .. habría que protegerlo de alguna otra forma .. )

Y luego ajustar el intervalo de horas/fechas que deseas que se ejecute ..

Un saludo,
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




La zona horaria es GMT -6. Ahora son las 04:35.