Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir,
Nouvelle sur php5 , j'utilise zend framework , je fais l'upload des fichiers dans ma base de donnée mysql , dans la table "document" j'ai les champs 'datedesaisie ' et 'datediffusion' et un champ status ; ce que je souhaite c'est changer le status du document automatiquement :
si (la datediffusion >=datesaisie) status =1
si ((la datediffusion >=datesaisie) status =0
cela automatiquement une fois la date de diffusion arrivée le document change de status
besoin de votre aide . merci
Hors ligne
ben si tu as un simple hébergement mutualisé tu changes cela quand un utilisateur affiche la liste de tes fichiers.
Sinon si tu as un serveur tu peux faire plus des choses mais bon je peux pas t'aider
Hors ligne
MERCI pour votre réponse , effectivement j'ai pensé à faire une requête de mise à jour de status dans la vue qui affiche la liste des fichiers qui va être exécutée chaque fois les fichiers consultés mais bn je cherche une autre solution si c possible , genre faire une mise à jour temps réel .
Hors ligne
ben si tu as un serveur c'est possible , mais si c'est un hébergement comme je te l'ai dit en haut c'est mort (je pense)
si ça peut t'aider :
http://matthieu.developpez.com/execution_periodique/
Hors ligne
pour le moment je travaille en local , j'ai visité le lien svp expliquez moi juste un peu plus :
1) script php : si (datediffusion>=sysdate) changer le statut dans la table document (0->1)
cela parait très simple , ou est ce que je dois mettre mon script ( rappel j'utilise zend server ) avec l'architecture MVC
SVP besoin de votre aide
Hors ligne
Tu n'as pas d'emplacement. Moi, je te conseille de faire un répertoire script à la racine de ton projet
/application /library /scripts <--- ici
Hors ligne
si tu as un serveur tu peux le faire via une tache "cron".
Hors ligne
je cherche toujours comment est ce que je peux faire cette tache que j'ai envie d'exécuter toute les heures ,
j'utilise zend server le script de la tache est (la condition if + modification d'un champ dans la table ) ou est ce que je dois mettre ce script , dans un controller ou quoi ??
et puis pour programmer la tache quelle méthode utiliser " cron c'est pour unix" mois je suis sur xp
Hors ligne
Si tu travailles avec ta base de données, à un moment donné, tu vas faire un UPDATE pour mettre à jour la date de diffusion. A ce moment là, tu peux soit également mettre à jour correctement ton status, soit créer ce qu'on appel un "trigger" (déclencheur) sur ton MySQL :
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
Ceci permet de réaliser des actions lorsqu'un UPDATE ou un INSERT ou autre sont exécutés.
Egalement, tu peux faire un trigger applicatif si tu utilises un modèle objet pour ta table (Zend_Db_Table par exemple) et surcharger les méthodes update() ou insert() en ajoutant ton code.
Vu que tu es sur Windows XP, tu peux créer une tâche périodique :
Programmes > Accessoires > Systèmes > Tâches planifiées et lancer une commande DOS qui en gros va faire "php updateStatus.php".
Il faut alors que tu fasses un script PHP (updateStatus.php) qui va contrôler tes dates et mettre à jour les status de ta table.
Je te conseille fortement ce tuto en anglais, sur lequel tu peux t'inspirer :
http://webfractor.wordpress.com/2008/08 … mand-line/
Enfin, pour résumer, j'utiliserais autant que possible les TRIGGER avant de te lancer dans des tâches planifiées. Surtout si tes status sont mis à jour suite à une action sur ton application.
Hors ligne