Pb compte à rebours mysql

Résolu
Bonjour,

Voici code compte à rebours avec mysql

ce code fonctionne
dans mysql j'ai la table "temps_restant" avec 3 colonnes
"id" , "temps_fin" et j'en ai rajouté une "or" avec valeur par default "3000"

bien sur cette colonne or est un exemple

ce que je souhaite c'est que dès que le compte à rebours est terminé
soit par l'exemple si dessous 10 secondes
une valeur exemple +200 soit rajoutée à ma colonne or et deviendrai de ce fait 3200

tout en sachant que la valeur soit rajoutée même si l'internaute est déconnecté

merci par avance de vos réponses

<?php

// Déclaration de la variable id qui sert généralement pour plusieurs compteurs 
$id = '1';

// Nous récupérons le time actuel et nous lui ajoutons x secondes
$temps_final = time()+(10);

// Nous commencerons cette prmière étape par nous connecté à notre Base de Données		
include"connect_sql.php";

// Nous mettons à jour la table temps_restant, plus précisement la colone "temps_fin" avec la variable "$temps_finaux" qui possédera l'"id" 1
mysql_query("UPDATE temps_restant SET temps_fin ='".$temps_final."' WHERE id='".$id."'") or die("Un erreur c'est produite dans la base de donnée<br>"); 

?>


<?php 
// Nous sélectionnons la colone "temps_fin" de la table "temps_restant" avec pour "id" 1
// Vous pouvez remplacer le champs "id" par pseudo, joueur,...
// C'est à vous de voir.
$requete = "SELECT temps_fin  FROM temps_restant WHERE id = '1'" ;

// Ici nous envoyons la requete et nous demandons à être informé d'une éventuelle erreur
$resultat = mysql_query($requete) or die('Une erreur c\'est introduite rendant impossible l\'envoi de la requête.');

// La requête nous renvoie ici la donnée précédemment demandée
$row = mysql_fetch_array($resultat);

// Nous attribuons ici la donné à une variable pour plus de facilité
$temps_final = $row['temps_fin'];

// Ceci n'est pas une ligne obligatoire. 
// Elle permet d'afficher quand notre décompte prend fin.
echo 'Temps de fin '. date('H:i:s y-m-d', $temps_final) ."\n"; 

// Nous calculons le temps restant par rapport à l'heure actuelle.
$temps_final =  $temps_final - time();

// Puis nous refermons la base de données.
mysql_close();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Décompteur style Ogame</title>
</head>
<script>

// Nous créons la fonction temps qui permettra la création de notre compteur

function decompte_temps()
{
	var compteur=document.getElementById('compteur');
	
	// Déclaration des variables initiales
	
	s=temps_restant;
	m=0;
	h=0;
	j=0;
	
	// Si le temps restant est inférieur à 0
	if(s<0)
	{
		// Nous affichons le lien "Continuer" tant que le nombre de secondes restent inférieures à 0
		compteur.innerHTML="Terminé<br />"+"<a href=http://lien1.fr>continuer</a>"
	}
	// Si le temps restant est supérieur à 0
	else
	{
		// Dans cette partie nous allons vérifier que le nombre de seconde et de minute ne dépasse pas 60
		// Ainsi que le nombre d'heure ne dépasse pas 24
		
		if(s>59)
			{
				m=Math.floor(s/60);
				s=s-m*60
			}
		if(m>59)
			{
				h=Math.floor(m/60);
				m=m-h*60
			}
		if(h>23)
			{
				j=Math.floor(h/24);
				h=h-j*24
			}
		
		// cette partie sert uniquement à afficher 00 et non 0 si nos chiffre sont inférieur à 10.
		if(s<10)
			{
				s="0"+s
			}
		if(m<10)
			{
				m="0"+m
			}
		if(h<10)
			{
				h="0"+h
			}
		
		// Nous affichons le lien "Interrompre" tant que le nombre de secondes restent supérieures à 0
		compteur.innerHTML=j+":"+h+":"+m+":"+s+"<br /><a href=http://lien2.fr>Interrompre</a>"
	 }

	// Nous soustrayons une seconde à notre décompteur
	temps_restant=temps_restant-1;
	
	//Nous demandons à répéter cette opération toutes les secondes
	window.setTimeout("decompte_temps();",1000);

}
</script>
<body>
<div id="compteur">
		<script>
			// Nous affichons notre premier cycle de notre fonction
            temps_restant= "<?php echo $temps_final;?>";
			
			// Nous demandons à notre script de répéter la fonction "decompte_temps"
            decompte_temps();
        </script>
    </div>
</body>
</html>




--
Moi je plante et toi tu creuses !!!

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    n'ayant reçu aucunes réponses
    je relance le sujet
    merci par avance

    1. bonjour,

      n'ayant reçu aucunes réponses
      je relance le sujet
      merci par avance

      Voici code compte à rebours avec mysql

      ce code fonctionne
      dans mysql j'ai la table "temps_restant" avec 3 colonnes
      "id" , "temps_fin" et j'en ai rajouté une "or" avec valeur par default "3000"

      bien sur cette colonne or est un exemple

      ce que je souhaite c'est que dès que le compte à rebours est terminé
      soit par l'exemple si dessous 10 secondes
      une valeur exemple +200 soit rajoutée à ma colonne or et deviendrai de ce fait 3200

      tout en sachant que la valeur soit rajoutée même si l'internaute est déconnecté

      merci par avance de vos réponses

      <?php
      
      // Déclaration de la variable id qui sert généralement pour plusieurs compteurs 
      $id = '1';
      
      // Nous récupérons le time actuel et nous lui ajoutons x secondes
      $temps_final = time()+(10);
      
      // Nous commencerons cette prmière étape par nous connecté à notre Base de Données		
      include"connect_sql.php";
      
      // Nous mettons à jour la table temps_restant, plus précisement la colone "temps_fin" avec la variable "$temps_finaux" qui possédera l'"id" 1
      mysql_query("UPDATE temps_restant SET temps_fin ='".$temps_final."' WHERE id='".$id."'") or die("Un erreur c'est produite dans la base de donnée<br>"); 
      
      ?>
      
      
      <?php 
      // Nous sélectionnons la colone "temps_fin" de la table "temps_restant" avec pour "id" 1
      // Vous pouvez remplacer le champs "id" par pseudo, joueur,...
      // C'est à vous de voir.
      $requete = "SELECT temps_fin  FROM temps_restant WHERE id = '1'" ;
      
      // Ici nous envoyons la requete et nous demandons à être informé d'une éventuelle erreur
      $resultat = mysql_query($requete) or die('Une erreur c\'est introduite rendant impossible l\'envoi de la requête.');
      
      // La requête nous renvoie ici la donnée précédemment demandée
      $row = mysql_fetch_array($resultat);
      
      // Nous attribuons ici la donné à une variable pour plus de facilité
      $temps_final = $row['temps_fin'];
      
      // Ceci n'est pas une ligne obligatoire. 
      // Elle permet d'afficher quand notre décompte prend fin.
      echo 'Temps de fin '. date('H:i:s y-m-d', $temps_final) ."\n"; 
      
      // Nous calculons le temps restant par rapport à l'heure actuelle.
      $temps_final =  $temps_final - time();
      
      // Puis nous refermons la base de données.
      mysql_close();
      
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Décompteur style Ogame</title>
      </head>
      <script>
      
      // Nous créons la fonction temps qui permettra la création de notre compteur
      
      function decompte_temps()
      {
      	var compteur=document.getElementById('compteur');
      	
      	// Déclaration des variables initiales
      	
      	s=temps_restant;
      	m=0;
      	h=0;
      	j=0;
      	
      	// Si le temps restant est inférieur à 0
      	if(s<0)
      	{
      		// Nous affichons le lien "Continuer" tant que le nombre de secondes restent inférieures à 0
      		compteur.innerHTML="Terminé<br />"+"<a href=http://lien1.fr>continuer</a>"
      	}
      	// Si le temps restant est supérieur à 0
      	else
      	{
      		// Dans cette partie nous allons vérifier que le nombre de seconde et de minute ne dépasse pas 60
      		// Ainsi que le nombre d'heure ne dépasse pas 24
      		
      		if(s>59)
      			{
      				m=Math.floor(s/60);
      				s=s-m*60
      			}
      		if(m>59)
      			{
      				h=Math.floor(m/60);
      				m=m-h*60
      			}
      		if(h>23)
      			{
      				j=Math.floor(h/24);
      				h=h-j*24
      			}
      		
      		// cette partie sert uniquement à afficher 00 et non 0 si nos chiffre sont inférieur à 10.
      		if(s<10)
      			{
      				s="0"+s
      			}
      		if(m<10)
      			{
      				m="0"+m
      			}
      		if(h<10)
      			{
      				h="0"+h
      			}
      		
      		// Nous affichons le lien "Interrompre" tant que le nombre de secondes restent supérieures à 0
      		compteur.innerHTML=j+":"+h+":"+m+":"+s+"<br /><a href=http://lien2.fr>Interrompre</a>"
      	 }
      
      	// Nous soustrayons une seconde à notre décompteur
      	temps_restant=temps_restant-1;
      	
      	//Nous demandons à répéter cette opération toutes les secondes
      	window.setTimeout("decompte_temps();",1000);
      
      }
      </script>
      <body>
      <div id="compteur">
      		<script>
      			// Nous affichons notre premier cycle de notre fonction
                  temps_restant= "<?php echo $temps_final;?>";
      			
      			// Nous demandons à notre script de répéter la fonction "decompte_temps"
                  decompte_temps();
              </script>
          </div>
      </body>
      </html>
      
      


      Moi je plante et toi tu creuses !!!
      1. S'il te plait efface les commentaires, car je n'arrive pas a lire votre code....
        je souhaite vous aider dans le futur
        1. Bonjour

          voici de nouveau mon code sans les commentaires

          <?php
          $id = '1';
          $temps_final = time()+(10);
          include"connect_sql.php";
          mysql_query("UPDATE temps_restant SET temps_fin ='".$temps_final."' WHERE id='".$id."'") or die("Un erreur c'est produite dans la base de donnée<br>"); 
          ?>
          
          <?php 
          $requete = "SELECT temps_fin  FROM temps_restant WHERE id = '1'" ;
          $resultat = mysql_query($requete) or die('Une erreur c\'est introduite rendant impossible l\'envoi de la requête.');
          $row = mysql_fetch_array($resultat);
          $temps_final = $row['temps_fin'];
          echo 'Temps de fin '. date('H:i:s y-m-d', $temps_final) ."\n"; 
          $temps_final =  $temps_final - time();
          mysql_close();
          ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Décompteur style Ogame</title>
          </head>
          <script>
          function decompte_temps()
          {
          	var compteur=document.getElementById('compteur');
          	s=temps_restant;
          	m=0;
          	h=0;
          	j=0;
          	if(s<0)
          	{
          		compteur.innerHTML="Terminé<br />"+"<a href=http://lien1.fr>continuer</a>"
          	}
          	else
          	{
          		if(s>59)
          			{
          				m=Math.floor(s/60);
          				s=s-m*60
          			}
          		if(m>59)
          			{
          				h=Math.floor(m/60);
          				m=m-h*60
          			}
          		if(h>23)
          			{
          				j=Math.floor(h/24);
          				h=h-j*24
          			}
          	
          		if(s<10)
          			{
          				s="0"+s
          			}
          		if(m<10)
          			{
          				m="0"+m
          			}
          		if(h<10)
          			{
          				h="0"+h
          			}
          		compteur.innerHTML=j+":"+h+":"+m+":"+s+"<br /><a href=http://lien2.fr>Interrompre</a>"
          	 }
          	temps_restant=temps_restant-1;
          	window.setTimeout("decompte_temps();",1000);
          }
          </script>
          <body>
          <div id="compteur">
          		<script>
                      temps_restant= "<?php echo $temps_final;?>";
                      decompte_temps();
                  </script>
              </div>
          </body>
          </html>
          


          1. Pardon...... Pas de réponse!!
        2. Bonjour

          Pour répondre à ce sujet
          et n'ayant reçu aucune réponse
          donc voici mon travail

          l'objectif était d'obtenir le résultat suivant
          nb d'habitants = nb dollars / 1h
          et celà généré de façon automatique avec une base mysql

          l'actualisation de la page se fait automatiquement toutes les 5 secondes

          je vous souhaite une bonne réflexion, pas évident à réaliser

          <?php
          include('config.php')
          ?>
          
          <html>
              <head>
                         <title>Mon bureau</title>
          <META HTTP-EQUIV="Refresh" CONTENT="5; URL=index.php">
          
          
              </head>
              <body>
          
          
          Bonjour<?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?>,<br />
          Bienvenue sur notre site.<br />
          Vous pouvez <a href="users.php">voir la liste des utilisateurs</a>.<br /><br />
          <?php
          
          if(isset($_SESSION['username']))
          {
          			$heureReel=time();
          			$dnn = mysql_fetch_array(mysql_query('select dollars, population, time from users where username="'.$_SESSION['username'].'"'));
          			$dollars = htmlentities($dnn['dollars'], ENT_QUOTES, 'UTF-8');
          			$population = htmlentities($dnn['population'], ENT_QUOTES, 'UTF-8');
          			$time = htmlentities($dnn['time'], ENT_QUOTES, 'UTF-8');			
          			$diftime = $heureReel - $time;			
          			$dollarsReel = 	($population /3600 * $diftime) + $dollars;		
          		    mysql_query("UPDATE users SET time ='".$heureReel."' WHERE username='".$_SESSION['username']."'") or die("Un erreur timeReel dans la base de donnée<br>"); 
          			mysql_query("UPDATE users SET dollars ='".$dollarsReel."' WHERE username='".$_SESSION['username']."'") or die("Un erreur dollarsReel dans la base de donnée<br>"); 
          ?>
          <center>
          <h1>Mon bureau</h1>
          </center>
          ARGENT PASSE: <?php echo $dollars; ?> Dollars<br />
          ARGENT REEL: <?php echo round ($dollarsReel); ?> Dollars<br />
          POPULATION: <?php echo $population; ?> Citoyens<br />
          TIME REEL: <?php echo $heureReel; ?> Secondes<br />
          TIME PASSE: <?php echo $time; ?> secondes
          
          
          <br />
          <a href="edit_infos.php">Modifier mon compte</a><br />
          <a href="XY.php">Choisissez votre position sur cette carte</a><br />
          <a href="batiment.php">Mes bâtiments</a><br />
          <a href="connexion.php">Se déconnecter</a>
          <?php
          }
          else
          {
          //Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter
          ?>
          <a href="sign_up.php">Inscription</a><br />
          <a href="connexion.php">Se connecter</a>
          <?php
          }
          ?>
          		</body>
          </html>