Foros del Web » Programando para Internet » PHP »

script que se corre solo

Estas en el tema de script que se corre solo en el foro de PHP en Foros del Web. Hola amigos del foro. Alguno de ustedes sabe si existe una instruccion en php que haga que se realice algo en cierto tiempo sin que ...
  #1 (permalink)  
Antiguo 30/07/2005, 13:37
Avatar de erichfrom  
Fecha de Ingreso: octubre-2004
Mensajes: 148
Antigüedad: 19 años, 5 meses
Puntos: 1
script que se corre solo

Hola amigos del foro. Alguno de ustedes sabe si existe una instruccion en php
que haga que se realice algo en cierto tiempo sin que se tenga que correr
un scripts.
Lo que sucede es que quiero poner una sección de chistes en mi web y lo que
quiero es que los chistes cambien cada día sin necesidad de que yo lo haga
manualmente.
Los chistes se guardad en una base de datos.
  #2 (permalink)  
Antiguo 30/07/2005, 15:55
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
puedes usar la funcion date() de PHP, pero siempre correras un script es decir lo correra el usuario cuando acceda al sitio, no vos "a mano".
No se como guardas los chistes en la DB, pero si tienes ese control, podrías digamos, por ej. ingresar 31 chistes para los meses con 31 días, 30 para lo obvio y 29 para el solitario (esto hará q veas el chiste 29 cada cuatro años, pero...).
En la DB también debes de guardar la fecha con NOW() en un campo DATE, q te guardará la fecha actual en formato 0000-00-00 (año-mes-dia).
Luego con la función date() de PHP podrías hacer algo asi:
Código PHP:
$fecha date("Y"."-"."m"."-"."d");
//luego la sentencia SQL sería algo así
$consulta "SELECT chistes FROM tu_tabla WHERE fecha = '".$fecha."'";
$q mysql_db_query($dbname,$consulta) or die($consulta."<br>".mysql_error()); 
Ahi muchas otras formas de hacerlo, ni siquiera creo q esta pueda llegar a ser la mejor, pero la uso por practicidad.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 31/07/2005, 05:29
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Permiteme hacerte unos comentarios setbev:
- Si vaz a usar un campo DATE lo correcto es ocupar la función CURDATE() es vez de NOW(); la segunda esta pensada para trabajar con un campo DATETIME
- No tiene caso concatenar como lo haces con la función date(), puedes hacer simplemente:
Código PHP:
 $fecha date("Y-m-d"); 
- Si vaz a consultar los resultados de "hoy", ¿para qué usar PHP?; hazlo con el mismo CURDATE():
Código:
SELECT campos FROM tabla WHERE campo_fecha=CURDATE()
... y básicamente es posible usar SQL puro para algo que incumba un "ahora" --este mes, este año, este minuto, etc.-- y/o lapsos de tiempo --hace un mes, hace un año, hace un minuto, dentro de un mes, dentro de un año.. etc.--... solo como comentario.

Ahora, lo que planteas es que guarde un chiste por día y dentro de su script consulte el chiste del día respectivo, según entiendo ... Habrá que pedirle que se explique bien... si quiere mostrar solo un chiste diario ó varios... si quiere que no exista la posibilidad que se repitan, la cantidad misma de chistes.... Con tu método setbev tendría que tener 365 chistes, --repetidos quizá-- y podrían repetirse cada año --entonces sería otra consulta--.

Yo iria por otro camino... tener un campo DATE auxiliar... y guardar aleatoriamente la fecha de hoy.. quizá evitando que sea a una fecha del día anterior para que no se repitiera lo mismo dos días seguidos ; en ese caso sería algo como:
Código:
UPDATE tabla SET campo_date=CURDATE()  WHERE campo_date<>DATE_SUB(CURDATE(), INTERVAL 1 DAY) ORDER BY RAND() LIMIT X
... primero decimos que vamos a actualizar "campo_date" insertandole la fecha actual, la condición es que no sea tenga una fecha del día anterior, le asigamos el valor aleatoriamente y limitamos a X modificaciones... (X será los chistes a mostrar).... Entonces ya en nuestro script simplemente consultamos los "chistes de hoy"... ¿Cuál es la diferencia?; además de que estoy planteando varios registros a mostrar, no importa la cantidad de registros (365, 1000, 1000000), no tendremos que asignarles cuándo se han de mostrar... sería a el azar.

Claro que de esta manera el script ha de ejecutarse con un CRON JOB --LINUX-- ó con el Administrador de Tareas --Windows-- cada 24 horas(busca a el respecto)... así no es necesario estar agregando chistes... con una cantidad considerable tenemos suficiente... la aleatorieridad ha de depender de la cantidad de registros... y la query que propngo es solo en teoria Si hubiese problemas con ella consulta en el foro de BD cómo sería la sintáxis/forma adecuada... solo expongo mi idea.

Saludos!
PD: ... para que un script haga algo es necesario ejecutarlo ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 31/07/2005 a las 05:37
  #4 (permalink)  
Antiguo 31/07/2005, 11:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 272
Antigüedad: 20 años, 7 meses
Puntos: 0
mira, yo una vez precise eso que me dijiste y me contacte con el administador del servicio host, le pregunte directamente a ellos y me respondieron de que si que no hay ningun problema, aunque no lo llegue a usar se que ellos tienen una especia de bolc de notas donde vos pones la fecha y hora y que queres que se ejecute, el serve escanea eso y realiza la tarea.
Pero yo te recomiendo que preguntes con el proveedor del servicio.
  #5 (permalink)  
Antiguo 08/02/2008, 17:54
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: script que se corre solo

Precisamente es la forma mas correcta como indican en el foro, pero creo que ella se refiere a que realice una consulta cada cierto tiempo que pdrian ser cada 10, 20 o 30 minutos
  #6 (permalink)  
Antiguo 08/02/2008, 20:15
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: script que se corre solo

pero now y curdate no devolveran el dia en el q se encuetra la ciudad donde se encuentra el server lo ideal es q sea donde esta el user o me equivoco ?

yo usaria la opcion de sebtev

Última edición por talcual; 08/02/2008 a las 20:16 Razón: correcion
  #7 (permalink)  
Antiguo 09/02/2008, 03:28
venkman
Invitado
 
Mensajes: n/a
Puntos:
Re: script que se corre solo

Lo que necesitas no tiene que ver con PHP realmente.

Lo que necesitas se llama cron y es una funcionalidad del sistema operativo. Le dices qué es lo que quieres que ejecute y cuándo. Contacta con tu servicio de alojamiento para saber si permiten el uso de cron en sus sistemas.
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 07:13.