Pb compte à rebours mysql

Résolu
dwieser Messages postés 235 Statut Membre -  
dwieser Messages postés 235 Statut Membre -
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

  1. dwieser Messages postés 235 Statut Membre 9
     
    Bonjour,
    n'ayant reçu aucunes réponses
    je relance le sujet
    merci par avance

    0
  2. dwieser Messages postés 235 Statut Membre 9
     
    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 !!!
    0
  3. leen.net Messages postés 247 Statut Membre 13
     
    S'il te plait efface les commentaires, car je n'arrive pas a lire votre code....
    je souhaite vous aider dans le futur
    0
  4. dwieser Messages postés 235 Statut Membre 9
     
    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>
    


    0
    1. leen.net Messages postés 247 Statut Membre 13
       
      Pardon...... Pas de réponse!!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dwieser Messages postés 235 Statut Membre 9
     
    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>
    0