Pb compte à rebours mysql

Fermé
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 - 2 janv. 2012 à 16:17
dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 - 3 janv. 2012 à 01:20
Bonjour,

Voici ci joint mon jeu que je suis en train de faire

http://collector.franceserv.com/index.php

Mais je suis confronté par un problème de compte à rebours
et par un manque de connaissance je vous demande de l'aide
comme vous pouvez le voir le résultat attendu est celui des "batiment militaire"
bouton "construire" le compte à rebours se met en marche et me bloque le bouton
ça c'est bien mais c'est une fonction JavaScript sans plus.

L'OBJECTIF conservé les données du time compte à rebours dans ma base mysql
et là j'y suis arrivé
le problème le compte à rebours se retrouve sur une autre page mais avant je passe par la page decompte.php pour enregistrer le temps_fin via base de données mysql


MERCI PAR AVANCE DE VOTRE AIDE

pour faire au plus simple possible
je vous donne 3 codes

le 1er: ma page principale
<?php
include"config.php";
?>
<html>
<head>
          <title>Mes habitations</title>
			 
</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 time dans la base de donnée<br>"); 
			mysql_query("UPDATE users SET dollars ='".$dollarsReel."' WHERE username='".$_SESSION['username']."'") or die("Un erreur dollars dans la base de donnée<br>"); 
?>
<center>
<h1>Construire des habitations</h1>
</center>
ARGENT REEL: <?php echo round ($dollarsReel); ?> Dollars<br />
POPULATION: <?php echo $population; ?> Citoyens<br />
<center>
<h3>CABANE EN BOIS
</h3>
<form>
<input style="text-align:center;"  name="amount" maxlength="6" size="6" value="0" method="GET">
<input type="button" value="+" onClick="javascript:this.form.amount.value++;">
<input type="button" value="-" onClick="javascript:if (this.form.amount.value>0)this.form.amount.value--;">
</form>
<FORM name="decompte">
<input type="button" value="Construire"  onclick="window.location.href='decompte.php'">
<input type="button" value="Vendre" onclick="........................">
</FORM>
</center>
<a href="index.php">Mon bureau</a><br />
<a href="connexion.php">Se déconnecter</a>
<?php
}
else
{
?>
<a href="sign_up.php">Inscription</a><br />
<a href="connexion.php">Se connecter</a>
<?php
}
?>
</body>
</html>




la 2ème page : enregistrement du "temps_fin" via ma base de donnée

<?php 
include"config.php";
?>
<!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>
<body>
<?php
$temps_final = time()+(10);
mysql_fetch_array(mysql_query('select temps_fin from users where username="'.$_SESSION['username'].'"'));
mysql_query("UPDATE users SET temps_fin ='".$temps_final."' WHERE username='".$_SESSION['username']."'") or die("Un erreur c'est produite dans la base de donnée<br>");
echo "Table mise à jours<br>
<a href=indexdecompte.php>Regarder le déccompte</a>";
?>
</body>
</html> 


et voici la 3ème page "lA PLUS IMPORTANTE" le compte à rebours

<?php 
include"config.php";
?>
<!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>
<body>
<?php
$requete =('select temps_fin from users where username="'.$_SESSION['username'].'"');
$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)
	{
		// 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
	{
		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>
            temps_restant= "<?php echo $temps_final;?>";
            decompte_temps();
        </script>
    </div>
</body>
</html>






A voir également:

1 réponse

dwieser Messages postés 225 Date d'inscription samedi 25 avril 2009 Statut Membre Dernière intervention 29 janvier 2013 9
3 janv. 2012 à 01:20
bonjour,

je viens de résoudre mon problème de compte à rebours
J'en ai mi des heures pas facile cette affaire de code
mais le résultat est pas mal

mais j'ai un tout petit problème
le compte à rebours fonctionne avec la base de donnée mysql
mais le bouton "construire"
il faudrait le bloquer en passant par le code java script
puisque quand ce code fonctionne il ne faudrait pas pouvoir cliquer sur "construire"

voici le site http://collector.franceserv.com/index.php

et voici le code ou se trouve le bouton et le code script decompte_temps()

MERCI POUR VOS REPONSES

<?php 
include"config.php";
$date = date("d-m-Y");
	$heure = date("H:i:s");
	Print("Nous sommes le $date et il est $heure<br/>"); 
?>
<html>
<head>
          <title>Mes habitations</title>
		  <META HTTP-EQUIV="Refresh" CONTENT="5; URL=habitation.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 time dans la base de donnée<br>"); 
			mysql_query("UPDATE users SET dollars ='".$dollarsReel."' WHERE username='".$_SESSION['username']."'") or die("Un erreur dollars dans la base de donnée<br>"); 
?>
<center>
<h1>Construire des habitations</h1>
</center>
ARGENT REEL: <?php echo round ($dollarsReel); ?> Dollars<br />
POPULATION: <?php echo $population; ?> Citoyens<br />
<center>
<h3>CABANE EN BOIS
</h3>
<form>
<input style="text-align:center;"  name="amount" maxlength="6" size="6" value="0" method="GET">
<input type="button" value="+" onClick="javascript:this.form.amount.value++;">
<input type="button" value="-" onClick="javascript:if (this.form.amount.value>0)this.form.amount.value--;">
</form>
<?php
$requete =('select temps_fin from users where username="'.$_SESSION['username'].'"');
$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 d-m-Y', $temps_final) ."\n"; 
$temps_final =  $temps_final - time();
mysql_close();
?>
<script>
function decompte_temps()

{
	var compteur=document.getElementById('compteur');
	s=temps_restant;
	m=0;
	h=0;
	j=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
	{
		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>
            temps_restant= "<?php echo $temps_final;?>";
            decompte_temps();
        </script>
    </div>
<FORM name="decompte">
<input type="button" value="Construire"  onclick="document.location.href='decompte.php';this.disabled=true">
<input type="button" value="Vendre" onclick="........................">
</FORM>
</center>
<a href="index.php">Mon bureau</a><br />
<a href="connexion.php">Se déconnecter</a>
<?php
}
else
{
?>
<a href="sign_up.php">Inscription</a><br />
<a href="connexion.php">Se connecter</a>
<?php
}
?>
</body>
</html>
0