Afficher requête sql à heure fixe
Résolu/Fermé
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
-
4 juin 2010 à 11:00
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 - 17 juin 2010 à 08:39
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 - 17 juin 2010 à 08:39
A voir également:
- Afficher requête sql à heure fixe
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
- Repondeur free fixe ✓ - Forum Free mobile
- Dans le diaporama à télécharger, les diapositives s’enchaînent automatiquement. combien de temps la diapositive crayon met-elle à s’afficher ? combien de temps reste-t-elle affichée à l’écran ? ✓ - Forum Powerpoint
- Afficher mot de passe wifi android - Guide
17 réponses
louloute300
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
4 juin 2010 à 11:07
4 juin 2010 à 11:07
Je rencontre le même problème actuellement...
https://forums.commentcamarche.net/forum/affich-18024101-mise-a-jour-automatique-en-php#p18026703
J'avance doucement...
https://forums.commentcamarche.net/forum/affich-18024101-mise-a-jour-automatique-en-php#p18026703
J'avance doucement...
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
Modifié par Xella60 le 7/06/2010 à 08:33
Modifié par Xella60 le 7/06/2010 à 08:33
up! j'ai besoin d'aide
J'ai lu quelques poste à propos de tâche cron. Est-ce possible d'exécuter un script Php tout les jours à 8h00 qui affiche ma liste de garde sur l'intranet à l'aide d'un cron?
Le cron joue t'il seuleument un rôle sur la base de donnée?
J'ai lu quelques poste à propos de tâche cron. Est-ce possible d'exécuter un script Php tout les jours à 8h00 qui affiche ma liste de garde sur l'intranet à l'aide d'un cron?
Le cron joue t'il seuleument un rôle sur la base de donnée?
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
8 juin 2010 à 07:21
8 juin 2010 à 07:21
up
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
9 juin 2010 à 10:51
9 juin 2010 à 10:51
up!
J'ai vraiment besoin d'une idée... j'ai besoin d'afficher la nouvelle page de garde tout les matins à 8h!
J'ai une table cdgdegarde dans lequel j'ai les services et les personnes concernés par la garde ainsi que le jour de leur garde.
En ce moment ma page de garde s'affiche et se change à minuit car dans mon code je récupère la date du jour puis je fais une requête qui va chercher les gardes ou $date(date du jour) = date de la garde
Est-ce possible d'afficher ma page à 8h00 seulement à l'aide d'une requête ou dois-je faire un cron ?
Si la solution du cron vous parait correct, pouvez-vous m'en dire un peu sur le cron car je n'y connait rien. J'ai essayé de me renseigné un peu partout mais je trouve les explications peut clair.
J'ai vraiment besoin d'une idée... j'ai besoin d'afficher la nouvelle page de garde tout les matins à 8h!
J'ai une table cdgdegarde dans lequel j'ai les services et les personnes concernés par la garde ainsi que le jour de leur garde.
En ce moment ma page de garde s'affiche et se change à minuit car dans mon code je récupère la date du jour puis je fais une requête qui va chercher les gardes ou $date(date du jour) = date de la garde
Est-ce possible d'afficher ma page à 8h00 seulement à l'aide d'une requête ou dois-je faire un cron ?
Si la solution du cron vous parait correct, pouvez-vous m'en dire un peu sur le cron car je n'y connait rien. J'ai essayé de me renseigné un peu partout mais je trouve les explications peut clair.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
Modifié par Xella60 le 10/06/2010 à 07:46
Modifié par Xella60 le 10/06/2010 à 07:46
up!
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
10 juin 2010 à 07:47
10 juin 2010 à 07:47
up
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 09:38
11 juin 2010 à 09:38
up
blux
Messages postés
26610
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 janvier 2025
3 326
11 juin 2010 à 09:46
11 juin 2010 à 09:46
Salut,
si dans ta base, tu n'as pas de gestionj d'évènement horaire (ce qui est normal, puisque ce n'est pas le rôle d'une base), alors, le passage par un automatisme extérieur doit être envisagé.
cron permet de lancer un script (quel qu'il soit) à des horaires prédéfinis.
Il fonctionne avec un fichier dans lequel on paramètre des dates et heures avec un nom de script à lancer.
Cependant, si ton action à faire n'est pas scriptable, alors cron ne pourra rien y faire.
Ex de contenu du fichier de paramètre de cron :
0 10 * * 1-5 nom_du_script
Ici, on va lancer à 10:00 le matin du lundi au vendredi le script 'nom_du_script'
Il y a quand même quelque chose qui m'échappe : qui provoque le rafraichissement à minuit, puisque l'on est sur une page web, ça ne se fait pas automatiquement ?
si dans ta base, tu n'as pas de gestionj d'évènement horaire (ce qui est normal, puisque ce n'est pas le rôle d'une base), alors, le passage par un automatisme extérieur doit être envisagé.
cron permet de lancer un script (quel qu'il soit) à des horaires prédéfinis.
Il fonctionne avec un fichier dans lequel on paramètre des dates et heures avec un nom de script à lancer.
Cependant, si ton action à faire n'est pas scriptable, alors cron ne pourra rien y faire.
Ex de contenu du fichier de paramètre de cron :
0 10 * * 1-5 nom_du_script
Ici, on va lancer à 10:00 le matin du lundi au vendredi le script 'nom_du_script'
Il y a quand même quelque chose qui m'échappe : qui provoque le rafraichissement à minuit, puisque l'on est sur une page web, ça ne se fait pas automatiquement ?
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 10:27
11 juin 2010 à 10:27
Le rafraichissement se fait manuellement si je peux dire sa^^
En faite, il y a des médecins 24h/24 dans la clinique, lorsqu'il laisse la page sur la page de garde il n'y a pas de changement. Mais comme ils savent que sa change par jour, vers minuit s'il rafraichisse la page il y a la nouvelle liste.
Cependant j'ai "réglé" ce problème en faisant un rafraichissement de la page toute les 10 minutes.
Pour le cron je sais que le serveur sur lequel est logé l'intranet le prend en compte mais je n'ai jamais fait sa.
Je me suis un peut renseignée mais jme sent perdu^^
En faite, il y a des médecins 24h/24 dans la clinique, lorsqu'il laisse la page sur la page de garde il n'y a pas de changement. Mais comme ils savent que sa change par jour, vers minuit s'il rafraichisse la page il y a la nouvelle liste.
Cependant j'ai "réglé" ce problème en faisant un rafraichissement de la page toute les 10 minutes.
Pour le cron je sais que le serveur sur lequel est logé l'intranet le prend en compte mais je n'ai jamais fait sa.
Je me suis un peut renseignée mais jme sent perdu^^
blux
Messages postés
26610
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 janvier 2025
3 326
11 juin 2010 à 10:34
11 juin 2010 à 10:34
Y'a un truc qui m'échappe, si le rafraichissement de la page est automatique toutes les 10 min, où est le problème ?
Il faut juste vérifier qu'on est après 8h00 et lancer la requête qui va mettre à jour les gardes, non ?
Il faut juste vérifier qu'on est après 8h00 et lancer la requête qui va mettre à jour les gardes, non ?
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 11:03
11 juin 2010 à 11:03
j'ai essayé plein de chose justement mais je n'arrive pas à faire que la requête ne s'affiche pas avant 8h00 :s surtout qu'il faut qu'elle s'affiche à 8h00 et reste active jusqu'à 8h00 le lendemain...
Une idée?
Une idée?
blux
Messages postés
26610
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 janvier 2025
3 326
11 juin 2010 à 11:30
11 juin 2010 à 11:30
Je ne comprends pas ton problème : la requête est exécutée à chaque appel de la page.
Ca veut dire quoi : je n'arrive pas à faire que la requête ne s'affiche pas avant 8h00
Ne serait-ce point que tu ne veux pas que la requête s'exécute tant qu'il n'est pas 8:00 et que tu aies les anciens résultats jusqu'à cette heure ?
Dans ce cas, il te faut positionner un horodatage dans une table lorsque tu génères ta requête et ensuite tu iras voir si tu es supérieur de plus de 24 heures par rapport à cet horodatage, si oui : tu relances la requête, sinon, tu gardes les données...
Ca veut dire quoi : je n'arrive pas à faire que la requête ne s'affiche pas avant 8h00
Ne serait-ce point que tu ne veux pas que la requête s'exécute tant qu'il n'est pas 8:00 et que tu aies les anciens résultats jusqu'à cette heure ?
Dans ce cas, il te faut positionner un horodatage dans une table lorsque tu génères ta requête et ensuite tu iras voir si tu es supérieur de plus de 24 heures par rapport à cet horodatage, si oui : tu relances la requête, sinon, tu gardes les données...
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 11:38
11 juin 2010 à 11:38
oui tu as compris ce que je veux faire!!!
Le matin entre minuit et 8h je garde la requête de la vieille et à 8h00 la nouvelle requête doit s'exécuter.
qu'est ce que tu veux dire par un horodatage?
Le matin entre minuit et 8h je garde la requête de la vieille et à 8h00 la nouvelle requête doit s'exécuter.
qu'est ce que tu veux dire par un horodatage?
blux
Messages postés
26610
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 janvier 2025
3 326
11 juin 2010 à 12:21
11 juin 2010 à 12:21
Tu crées une table avec un seul champ de type date/heure.
Lorsque tu génère ta requête, tu vas mettre à jour ce champ avec date/heure courante.
Ensuite, à chaque rafraichissemeent de la page, tu vas regarder l'heure qu'il est et tu compares avec ce qu'il y a dans la table. Tant que tu n'as pas dépassé de 24 heures la date/heure, tu ne fais rien, sinon, tu regénères ta requête.
Lorsque tu génère ta requête, tu vas mettre à jour ce champ avec date/heure courante.
Ensuite, à chaque rafraichissemeent de la page, tu vas regarder l'heure qu'il est et tu compares avec ce qu'il y a dans la table. Tant que tu n'as pas dépassé de 24 heures la date/heure, tu ne fais rien, sinon, tu regénères ta requête.
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
Modifié par Xella60 le 11/06/2010 à 13:47
Modifié par Xella60 le 11/06/2010 à 13:47
Le problème c'est qu'avec mon code je ne sais pas pourquoi mais impossible de récupérer l'heure...
$avant = $ts - 86400; //TimeStamp Lundi précédant
$apres = $ts + 86400; //TimeStamp Lundi suivant
$valDate="";
$dateAff=date('d M Y',$ts);
$date=date('Y-m-d H:i:s',$ts);
ensuite sa envoi a une fonction javascript:
function goSetLiaison(idServ,date){
var varToSend="setLiaison*_*"+idServ+"*_*"+getVal('listeInt'+idServ)+"*_*"+date;
linkToDiv('requetes.php','divRequete',varToSend,'1');
}
Puis à ma requête pour insérer :
}else if($typeReq=="setLiaison"){
$idServ=$tabVariables[1];
$idInt=$tabVariables[2];
$date=$tabVariables[3];
$reqVerif=verifReq("SELECT * FROM cdgdegarde WHERE idServ='$idServ' AND date='$date'");
if(mysql_num_rows($reqVerif)==0){
verifReq("INSERT INTO cdgdegarde VALUE('$idServ','$idInt', '$date')");
}else{
verifReq("UPDATE cdgdegarde SET idInt='$idInt' WHERE idServ='$idServ' AND date='$date'");
}
Je tient a préciser que ce n'est pas moi qui est fait ces pages, pas facile de passer derrière quelqu'un... :(
Le champ date de ma table cdgdegarde est de type datetime.
Quand on ajoute une garde, la date de la garde est bien ajouté dans la table mais pas l'heure on reçoit donc qqchose comme 2010-06-11 00:00:00
$avant = $ts - 86400; //TimeStamp Lundi précédant
$apres = $ts + 86400; //TimeStamp Lundi suivant
$valDate="";
$dateAff=date('d M Y',$ts);
$date=date('Y-m-d H:i:s',$ts);
ensuite sa envoi a une fonction javascript:
function goSetLiaison(idServ,date){
var varToSend="setLiaison*_*"+idServ+"*_*"+getVal('listeInt'+idServ)+"*_*"+date;
linkToDiv('requetes.php','divRequete',varToSend,'1');
}
Puis à ma requête pour insérer :
}else if($typeReq=="setLiaison"){
$idServ=$tabVariables[1];
$idInt=$tabVariables[2];
$date=$tabVariables[3];
$reqVerif=verifReq("SELECT * FROM cdgdegarde WHERE idServ='$idServ' AND date='$date'");
if(mysql_num_rows($reqVerif)==0){
verifReq("INSERT INTO cdgdegarde VALUE('$idServ','$idInt', '$date')");
}else{
verifReq("UPDATE cdgdegarde SET idInt='$idInt' WHERE idServ='$idServ' AND date='$date'");
}
Je tient a préciser que ce n'est pas moi qui est fait ces pages, pas facile de passer derrière quelqu'un... :(
Le champ date de ma table cdgdegarde est de type datetime.
Quand on ajoute une garde, la date de la garde est bien ajouté dans la table mais pas l'heure on reçoit donc qqchose comme 2010-06-11 00:00:00
louloute300
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
11 juin 2010 à 13:49
11 juin 2010 à 13:49
J'ai vu que tu utilisais le systeme unix à savoir compter en seconde.
Je me demande pourquoi dans ta table, tu ne remplace pas datetime par decimal... Au moins, tu n'insèrerais que des valeur en secondes, ce qui t'éviterai de faire le changement...
Je me demande pourquoi dans ta table, tu ne remplace pas datetime par decimal... Au moins, tu n'insèrerais que des valeur en secondes, ce qui t'éviterai de faire le changement...
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
Modifié par Xella60 le 11/06/2010 à 14:00
Modifié par Xella60 le 11/06/2010 à 14:00
eh bien c'est pas moi qui est crée la base et l'intranet, la dernière mise à jour de celui-ci date de 2008...
En ce moment je suis stagiaire et il me demande de faire les changements de tout ce qui ne fonctionne pas comme il le voudrait.
Ce problème est le dernier qu'il me reste à résoudre mais je m'arrache les cheveux!!
J'ai une question pour le $ts = (mktime(08,0,0,$list[1],$list[2],$list[0],0));
ma variable $ts récupère ici le temps en seconde jusqu'a la date d'aujourd'hui à 8h c'est bien sa?
C'est cette valeur qu'il faut que je rentre en décimal dans ma table ?
En ce moment je suis stagiaire et il me demande de faire les changements de tout ce qui ne fonctionne pas comme il le voudrait.
Ce problème est le dernier qu'il me reste à résoudre mais je m'arrache les cheveux!!
J'ai une question pour le $ts = (mktime(08,0,0,$list[1],$list[2],$list[0],0));
ma variable $ts récupère ici le temps en seconde jusqu'a la date d'aujourd'hui à 8h c'est bien sa?
C'est cette valeur qu'il faut que je rentre en décimal dans ma table ?
louloute300
Messages postés
335
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
28 novembre 2012
29
11 juin 2010 à 14:12
11 juin 2010 à 14:12
Si tu le dis, c'est que c'est bien ca... quoique:
mktime ($hour,$minute,$second,$month,$day,$year, 1 ou 0 );
Si tu est sur que tes $list correspond bien au ref du dessus, alors la réponse est oui, Ca correspond bien au nombre de seconde écoulé depuis le 1 janv 1970 jusqu'à 8H du matin
mktime ($hour,$minute,$second,$month,$day,$year, 1 ou 0 );
Si tu est sur que tes $list correspond bien au ref du dessus, alors la réponse est oui, Ca correspond bien au nombre de seconde écoulé depuis le 1 janv 1970 jusqu'à 8H du matin
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 14:14
11 juin 2010 à 14:14
Je n'arrive pas à entrer l'heure dans ma table c'est l'horreur ! Je comprend l'idée de comparer avec les 24h mais je ne voit pas comment m'y prendre je me sent surpassé la =(
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
11 juin 2010 à 14:41
11 juin 2010 à 14:41
Voila ma requête qui affiche la liste des gardes:
while($rowServ=mysql_fetch_object($reqListServ)){
$cptColor++;
$idServ=$rowServ->idServ;
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND date='$date'");}
Est-il possible de faire une condition du style si les secondes écoulé à l'instant T moins les secondes écoulé jusqu'à aujourd'hui 8h < 86 400 (soit 24h) alors exécuter la requête...?
while($rowServ=mysql_fetch_object($reqListServ)){
$cptColor++;
$idServ=$rowServ->idServ;
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND date='$date'");}
Est-il possible de faire une condition du style si les secondes écoulé à l'instant T moins les secondes écoulé jusqu'à aujourd'hui 8h < 86 400 (soit 24h) alors exécuter la requête...?
blux
Messages postés
26610
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 janvier 2025
3 326
11 juin 2010 à 14:58
11 juin 2010 à 14:58
Quel que soit le calcul que tu veux faire, il te faut avoir quelque part ta date et heure de référence, en php, pas de variables qui tiennent la distance, à moins de jouer avec les sessions ou les cookies...
tartefion
Messages postés
31
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
21 janvier 2011
7
11 juin 2010 à 15:04
11 juin 2010 à 15:04
Comme l'a dit Blux,
il ne te reste plus qu'a faire tes conditions sur les dates / heures contenus dans ta table par rapport à la date en cours (d'où la session qui peut être appelé à n'importe quel moment)
Ou alors, j'ai rien compris à ce que tu voulais ! ++ en espérant avoir aidé.
session_start(); $_SESSION['date']=date("Y/m/d"); $_SESSION['heure']=date("H:i:s");
il ne te reste plus qu'a faire tes conditions sur les dates / heures contenus dans ta table par rapport à la date en cours (d'où la session qui peut être appelé à n'importe quel moment)
Ou alors, j'ai rien compris à ce que tu voulais ! ++ en espérant avoir aidé.
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
Modifié par Xella60 le 16/06/2010 à 13:29
Modifié par Xella60 le 16/06/2010 à 13:29
J'ai ajouté un champ heure de type time dans ma table cdgdegarde et j'ai changé la requête de cette facon :
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND (date='$hier' AND $sheure <= heure) OR ( date='$date' AND $sheure > heure");
Sa ne fonctionne toujours pas, comment faire pour comparer l'heure actuelle et l'heure dans ma table?
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND (date='$hier' AND $sheure <= heure) OR ( date='$date' AND $sheure > heure");
Sa ne fonctionne toujours pas, comment faire pour comparer l'heure actuelle et l'heure dans ma table?
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
16 juin 2010 à 14:17
16 juin 2010 à 14:17
up
Xella60
Messages postés
65
Date d'inscription
jeudi 3 juin 2010
Statut
Membre
Dernière intervention
25 février 2011
3
17 juin 2010 à 08:39
17 juin 2010 à 08:39
J'ai trouvé une solution , je l'affiche si sa peut aider quelqu'un un jour:
$heure=$_SESSION['heure']=date("H:i:s"); // récupère l'heure
$heureEntier = str_replace(":", "", $heure); //remplace les ":" par rien exemple 08:59:30 devient 085930
$hier=$_SESSION['hier']=date("Y-m-d",$avant);//récupère la date d'hier
Ma requête est :
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND ((date='$date' AND $heureEntier > 80000)
OR (date='$hier' AND $heureEntier <= 80000)) ");
80000 représente 08:00:00
C'est une méthode un peu barbare mais elle fonctionne très bien!!!!
$heure=$_SESSION['heure']=date("H:i:s"); // récupère l'heure
$heureEntier = str_replace(":", "", $heure); //remplace les ":" par rien exemple 08:59:30 devient 085930
$hier=$_SESSION['hier']=date("Y-m-d",$avant);//récupère la date d'hier
Ma requête est :
$reqLiaison=verifReq("SELECT d.idInt,nom,telephone
FROM cdgdegarde d,cdgintervenant i
WHERE d.idInt=i.idInt
AND idServ='$idServ'
AND ((date='$date' AND $heureEntier > 80000)
OR (date='$hier' AND $heureEntier <= 80000)) ");
80000 représente 08:00:00
C'est une méthode un peu barbare mais elle fonctionne très bien!!!!