[Résolu] Compte a rebours PHP - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Compte a rebours PHP (/showthread.php?tid=2596) |
RE: Compte a rebours PHP - fenix - 24-05-2008 bon alors voila le joueur prend un certain temps de garde (gerer par une autre fonction) celle ci envoie la date de fin de cette garde a la bdd puis ce compte a rebours est sencer donner le temps restant avant la fin de cette garde en comparant la différence entre l'heure actuelle et celle de fin. voila RE: Compte a rebours PHP - Cartman34 - 24-05-2008 Désolé Sephi mais utiliser les fonction mysql est tres lourd(plus qu'avec PHP je veux dire), surtout que c'est généralement inutile. RE: Compte a rebours PHP - Sephi-Chan - 24-05-2008 C'est à moi de m'excuser pour toi, IGstaff… L'utilisation de fonctions de dates de MySQL pour manipuler des champs de type TIMESTAMP, TIME ou DATE est bien plus robustes que de stocker des timestamp sous forme d'entier puis les manipuler avec les fonctions de PHP. Pour résoudre le problème, il suffit d'utiliser les fonctions de dates et d'heures de MySQL comme cela : Par exemple, au moment où tu mets à jour (ou insert) ta table la date de fin du temps de garde, tu fais : Code : UPDATE table Le champ vaudra alors la date actuelle à laquelle est ajoutée la durée indiquée. C'est donc déjà très pratique à l'insertion. Ensuite, pour savoir si la date est passée, il suffit de regarder le signe de la soustraction de la date actuelle moins la date de fin de la garde. Code : SELECT * Mais tu peux également rechercher pour une ressource particulière. Si par exemple tu veux vérifier que ton joueur a fini son tour de garde, tu peux faire Code : SELECT *, Sephi-Chan RE: Compte a rebours PHP - fenix - 24-05-2008 sa a l'air tres pratique mais sa a marcher qu'une fois apres sa affiche You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'DATE_ADD(NOW(), INTERVAL 3600 SECOND)' WHERE id='1'' at line 1 RE: Compte a rebours PHP - Sephi-Chan - 24-05-2008 Colle ta requête entière, qu'on puisse voir. De plus, l'expression 3600 SECOND peut être remplacée par 1 HOUR. Sephi-Chan RE: Compte a rebours PHP - fenix - 24-05-2008 j'ai essyer diverse façons la derniere etant $sec = "DATE_ADD(NOW(), INTERVAL 3600 SECOND)"; $updatequery = doquery("UPDATE {{table}}SET fingarde='$sec' WHERE id='".$userrow["id"]."' ", "users"); mais aussi $updatequery = doquery("UPDATE {{table}}SET fingarde='DATE_ADD(NOW(), INTERVAL 3600 SECOND);' WHERE id='".$userrow["id"]."' ", "users"); RE: Compte a rebours PHP - Sephi-Chan - 24-05-2008 Tu as mis des quotes autour de ton expression, ça n'est donc pas interprété par MySQL puisqu'il considère ça comme une chaîne de caractère. Essaye ça : Code PHP :
Sephi-Chan RE: Compte a rebours PHP - fenix - 24-05-2008 ce coups ci sa marche et sa a bien up Merci beaucoup il me reste juste a revoir le compteur pour qu'il fonctionne avec RE: Compte a rebours PHP - Studio Gamboo - 24-05-2008 Encore une victoire de canard. RE: Compte a rebours PHP - Eluox - 24-05-2008 Studio Gamboo a écrit :Encore une victoire de canard. Encore du flood de Gamboo |