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 :

condition de temps pour modifier une valeur


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Par défaut condition de temps pour modifier une valeur
    Bonjour à tous,

    je suis en moment en train de réaliser un code que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $queryStatus = "SELECT field_2, field_6  FROM ibf_pfields_content";
    	$resultStatus = mysql_query($queryStatus, $db) or die($queryStatus . " - " . mysql_error());	
    
    while ($status = mysql_fetch_array($resultStatus))
    {
    	if ("field_2 n'a pas changé de valeur depuis deux mois") {
    	$status["field_6"] = "Abonné";
    	} else if ("field_2 n'a pas changé de valeur depuis quatre mois") {
    	$status["field_6"] = "Inactif";
    	
    	$statusField6 = $status["field_6"];
    	$sql = "UPDATE ibf_pfields_content SET field_6 = '$statusField6' ";
    }
    les donées :
    - field_2 est de cette forme : 76H30 (correspond à un total d'heure)
    - field_6 par défaut est de valeur "Actif".

    Les conditions :
    - Si field_2 n'a pas changé de valeur depuis 2 mois, alors field_6 change de valeur
    - Si field_2 n'a pas changé de valeur depuis 4 mois, alors field_6 change de valeur.

    Dans l'idée, field_6 passe d'abord par la première instruction, une fois sa valeur changée au bout de deux mois (Abonné), le compte à rebours reprend jusqu'à 4 mois où sa valeur changera de nouveau (Inactif). Si field_2 change de valeur n'importe quand dans le temps, field_6 reprendra sa valeur par défaut (Actif).

    Ce sont les conditions (en gras dans la quote) qui me pose problème, je n'arrive pas à trouver la bonne formule.

    auriez vous une idée ?

    Cordialement.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Donc field2 est un total d'heures ?

    donc 2 mois = 60 jours x 24h00 = 1440h00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (field_2 < 1440h00)

    4 mois = 120 jours * 24h00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (field_2 < 2880h00)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Donc field2 est un total d'heures ?

    donc 2 mois = 60 jours x 24h00 = 1440h00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (field_2 < 1440h00)

    4 mois = 120 jours * 24h00
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (field_2 < 2880h00)
    Perdu

    J'ai dû mal préciser le contexte :

    Par exemple, lorsqu'un membre participe à une activité pendant 01H30, cette durée est comptabilisée dans son "carnet d'heures". Field_2 est là pour ça, stocker le total d'heures de participation pour chaque membre (actif). Maintenant si ce membre n'a participé à aucune activité pendant 2 mois (Field_2 n'a pas changé de valeur), alors le statut de ce membre change (abonné). Si au bout de 4 mois, il n'a toujours pas participé, son statut change à nouveau (Inactif). Si maintenant il a de nouveau participé (le field_2 le concernant à changer de valeur), son statut revient en "Actif" et le compte à rebours de 2 mois (puis 4 mois) est réinitialisé.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Pour alors c'est pas sur son temps sur ton site qu'il faut jouer, mais bien sur sa présence.


    exemple, je me connecte, dans ta base tu mets la date d'aujourd'hui, si je me connecte demain tu updates la date.


    ensuite tu vérifie si je ne suis pas venu depuis moins de 2 mois

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Pour alors c'est pas sur son temps sur ton site qu'il faut jouer, mais bien sur sa présence.


    exemple, je me connecte, dans ta base tu mets la date d'aujourd'hui, si je me connecte demain tu updates la date.


    ensuite tu vérifie si je ne suis pas venu depuis moins de 2 mois
    participation à une activité... la présence sur un site (connexion/déconnexion) n'a rien à voir puisque le membre peut très bien surfer sur le site sans participer à une activité.

    En gros, des membres réalisent 01H30 de vol sur avions. L'organisateur, grâce à un formulaire, update les heures de vol des participants (+01H30 pour eux). Si les heures de vol d'un membre n'a pas été updaté depuis deux mois, son statut passe en abonné, etc...

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Cela reste le même principe.

    le faite qu'il passe 10min ou 4h00 sur une activité, ne t'intéresse que moyennement, ce qui t'intéresse c'est le fait de faire une activité tout les 2 mois au minimum.

    donc chaque fois que je fais une activité tu mets un datetime dans le db et c'est cet infos que tu compares et non pas le temps passé a faire une activté.

    est-ce clair?

Discussions similaires

  1. recordset pour modifier une valeur d'un champ
    Par YannC dans le forum VBA Access
    Réponses: 20
    Dernier message: 04/07/2012, 10h41
  2. Réponses: 6
    Dernier message: 31/01/2012, 18h38
  3. trigger pour modifier une valeur après création du record
    Par awalter1 dans le forum Administration
    Réponses: 5
    Dernier message: 07/03/2011, 18h41
  4. [XL-2007] Condition Si pour récupérer une valeur de cellule
    Par Scatmax dans le forum Excel
    Réponses: 11
    Dernier message: 03/05/2010, 10h43
  5. Réponses: 1
    Dernier message: 31/10/2006, 11h15

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