Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment créer une minuterie ?

    14 août 2009 à 18:13:07

    Bonjour,
    Faisant un site tout seul, je voudrais savoir comment créer une minuterie combinés avec du PHP ?
    Peut-être ne suis pas clair ?
    En fait, dans mon site, l'utilisateur devra attendre 2 minutes avant d'avoir la mise à jour de son bâtiment (la montée d'un niveau de son bâtiment, mon site est un jeu).
    J'ai déja, je pense le code PHP, mais, pour la minuterie en JS, faut-il utilisé la fonction setTimeout ? Si oui, comment ?

    Merci comme comme même.
    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2009 à 18:15:59

      Un setTimout qui au bout de 2 secondes envoie une requête AJAX pour dire "hey c'est niveau 2"
      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2009 à 18:16:41

        Une requête Ajax ? Ou PHP ?
        • Partager sur Facebook
        • Partager sur Twitter
          14 août 2009 à 21:04:24

          Ajax. Juste, tu met un var timer = setTimeout(up_batiment, 120000);

          Et ta fonction qui envoie une requete AJAX vers ta page php
          • Partager sur Facebook
          • Partager sur Twitter
            15 août 2009 à 14:42:28

            Hello,
            ton idée est bonne, mais t'as meilleurs temps de faire une requète sur une seule page qui s'occupe de vérifier tous les timers que t'as en mémoire dans une db.
            setTimeout(checkTimers, 1000);
            


            Code de ta page PHP
            <?php
            //j'utilise l'interface mysqli http://ch.php.net/mysqli
            $db = new mysqli($host, $user, $pass, $db);
            
            //tu récupère tous tes timers qui sont stockée en bdd
            $_timers = $db->query('select * from timers where joueur_id = '.$joueur_id.';');
            
            //tu récupère le timestamp actuel
            $currentTime = time();
            
            //tu parcours tous tes timers
            while($timer = $_timers->fetch_object()){
                //tu check si le timer à expiré
                if($timer->expiration >= $currentTime){
                   //scripts des timers à effectuer
            
                   $expiredTimers[] = $timer;
                }
            }
            
            //tu reparcoure tes timers expirés pour les retirer de la db
            foreach($expiredTimers as $timer){
               if($db->query('DELETE FROM timers WHERE id = '.$timer->id.';')){
                  //traitement d'erreurs en cas d'échec
               }
            }
            
            //et la un retour en javascript pour mettre à jour la page
            
            ?>
            


            c'est juste un conseil après t'en fait ce que t'en veux
            bonne chance
            JD
            • Partager sur Facebook
            • Partager sur Twitter

            Comment créer une minuterie ?

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown