IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Une variable qui se vide en 48 heures [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut Une variable qui se vide en 48 heures
    Bonjour,

    Alors j'ai une variable dont ça valeur est 100 et se nomme "vie"

    Je veux que cette variable se vide petite à petit jusqu'à 0 en 48 heures !

    D’abord voici se que je voulais faire ;

    Créer les 2 champs pour stocker la vie (int) et la date de mise à jour (datetime) FAIT
    Au chargement de la page, récupérer ces 2 valeurs FAIT

    Calculer le nombre de points perdus depuis la dernière mise à jour (DateTime::diff) NON
    Mettre à jour la vie du joueur dans la bdd et la date de mise à jour (à NOW()) NON


    J'ai réussi à mettre les deux premier, mais le calcule et tout ! Je sais pas comment faire.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est un problème de logique et de maths, pas de PHP.

    48*3600 = 172800 secondes de temps correspondent à 100 points de vie.

    x secondes de temps écoulé valent donc x / 1728 points de vie en moins.

    Le nombre de secondes écoulées c'est la différence entre le début de ton compteur et maintenant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Oui, ça je sais ! Mais comment mettre le code.
    Une des personnes m'as proposée de faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //On transforme la date de la dernière mise à jour en Objet DateTime
     
    //On demande et transforme la date actuel en Objet DateTime
    //On fait la différence des 2 dates
    //On retourne la différence en secondes
    //Calcul de la perte de point de vie (1 PDV de perdu en 1728 secondes) difference/1728

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux avoir directement l'écart depuis mysql avec la fonction TIMESTAMPDIFF()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Je n'est pas compris comment faire :'(

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Voici se que j'ai fait !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $vie = $donnees['sante'];
     
     $date = $donnees['date_vie'];
     
     
     $date = new DateTime('2012-09-01 12:00:00');
     
    $dateNow = new \DateTime('now');
     
     
    $interval = $date->diff($dateNow);
     
    $interval = $interval->format('s');
     
     
    $interval/1728;
     
    $vie = -1  / $interval;
    Merci pour votre aide !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut Une tache cron toutes les minutes
    Bonjour,

    Alors je vous explique, mon script : script.php, contient ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $vie = $vie - 10;
     
    $req = $db-> prepare('UPDATE personnages SET sante='.$vie.' WHERE perso_proprietaire = :login');
    $req-> execute(array(
     'login' => $_SESSION['login']
     ));
     
      $req->closeCursor();
     
    }	 
    ?>
    Ce que je veux faire, c'est enlever chaque 1 minute 10 points d'une valeur de variable qui se nomme "vie" !

    J'avais compris, que le cron fait tourné chaque minutes, donc a chaque minute passé, ça fait - 10 à "vie". Mais m'as question, comment fonctionne se cron ? Comment le mettre dans ma page php pour qu'il s'exécute automatiquement ?! J'ai chercher sur google mais je n'est rien compris !

    Merci d'avance !

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La bonne méthode est celle décrite au dessus: déduire la nouvelle valeur par le temps écoulé.
    Faire tournée un processus toutes les minutes est absurde.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 6
    Points
    6
    Par défaut
    Merci : D

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une variable qui se vide en cours de route
    Par karpediem dans le forum Flash
    Réponses: 1
    Dernier message: 09/01/2009, 22h03
  2. Réponses: 7
    Dernier message: 16/06/2006, 16h31
  3. Contenu d'une variable qui disparait :/
    Par Aleksis dans le forum C++
    Réponses: 10
    Dernier message: 02/06/2006, 15h50
  4. Réponses: 7
    Dernier message: 29/03/2006, 11h50
  5. Détecter si une variable Integer est vide..
    Par mickael.be dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2006, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo