Pb compte à rebours mysql

Résolu/Fermé
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 - 18 déc. 2011 à 09:06
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 - 29 déc. 2011 à 18:42
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>



A voir également:

5 réponses

dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 9
18 déc. 2011 à 16:48
Bonjour,
n'ayant reçu aucunes réponses
je relance le sujet
merci par avance





0
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 9
19 déc. 2011 à 17:11
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
leen.net Messages postés 212 Date d'inscription lundi 31 janvier 2011 Statut Membre Dernière intervention 14 mai 2014 13
19 déc. 2011 à 20:45
S'il te plait efface les commentaires, car je n'arrive pas a lire votre code....
je souhaite vous aider dans le futur
0
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 9
20 déc. 2011 à 04:59
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
leen.net Messages postés 212 Date d'inscription lundi 31 janvier 2011 Statut Membre Dernière intervention 14 mai 2014 13
21 déc. 2011 à 17:52
Pardon...... Pas de réponse!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 9
29 déc. 2011 à 18:42
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