MySql UPDATE

Bonjour,

Voila je voudrais que chaque joueurs reçoivent ses crédits chaque heures sans qu'ils soient connecter !

<?php
		
		$nouveau_temps_territoire = time();
		
		mysql_query("UPDATE membres SET paltime = $nouveau_temps_territoire WHERE pseudo = '" . $_SESSION['pseudo'] . "'");

		$heure_maj_territoire = $retour['paltime'];
		
		$heure_territoire = date('h',$heure_maj_territoire);
		
		$heure = date('h');
		
		$pieces_total = $retour['pieces'] + $retour['territoire'];
		
		if ($heure_territoire != $heure)
		{
		mysql_query("UPDATE membres SET pieces = $pieces_total WHERE pseudo = '" . $_SESSION['pseudo'] . "'");
		}
?>


Merci d'avance pour votre aide !
Configuration: Windows 7
Firefox 3.5.6

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    Es-tu sûr d'avoir besoin de faire une mise à jour toutes les heures ?
    Il suffit d'augmenter leur crédit la prochaine fois que tes joueurs se connecteront, en fonction du temps écoulé depuis la dernière mise à jour de leur crédit.
    Et si quelqu'un d'autre qu'eux-mêmes est concerné par l'évolution de leur crédit, toi par exemple, if faut faire aussi cette opération quand c'est toi qui te connectes.
    1. Il faut que ton hébergeur accepte les tâches CRON, ou tu peux créer un système en PHP.
      En gros, tu stockes le timestamp de la dernière mise à jour.
      Dans chaque page, tu inclus (à l'aide de la fonction include) un script qui ressemble à ça :
      <?php
      $lastupdate_timestamp = file_get_contents('lastupdate.txt');
      $current_timestamp = time(); //
      $difference = $current_timestamp - $lastupdate_timestamp;
      
      if($difference >= 3600) {
          // Ton script de mise à jour
         file_put_contents('lastupdate.txt',$current_timestamp());
      }
      ?>
      1. si tu n'as pas de souci avec la requete, faut planifier une procédure stockée, ou assimilé.
        bon courage
        1. Réponse très intéressante Le père aurais tu une méthode pour mettre en place ce que tu dis ?
          1. OVH autorise les tâches CRON.

            Pour la solution du père, il suffit d'ajouter un champ "derniere_connexion" à la table des membres, et tu la modifies à chaque fois que le membre se connecte, après avoir mis à jour les crédits.
            Tu peux te basé sur mon code, c'est presque la même chose (il n'y a qu'une ligne à changer).
            1. Fatal error: Call to undefined function: file_put_contents() in /homez.131/gangstah/www/includes/haut.inc.php on line 60

              Voila l'erreur qui apparait quand je pose le code dans mon include !