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

Langage PHP Discussion :

gestion temps (modifier variable)


Sujet :

Langage PHP

  1. #41
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Points : 51
    Points
    51
    Par défaut
    donc je reprend mon code (enfin celui que ma re écrit rawsrc que je remercie)...
    grrr je lâcherais pas l’affaire il faut que je trouve.

    donc pour verifier que ce n'etais pas mes champs date en vachar j'ai recrée une ligne date_end de type date.

    alors si j'utilise date_fin (qui est en vachar tout passe en actif)
    et si j'utilise date_end (qui est en date je passe en fin de durée)

    je n'arrive pas a utiliser new datetime('now') car ma page bug ()

    donc le code est comme ceci :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    $client = mysql_real_escape_string($client);
    $nom    = mysql_real_escape_string($nom);
    $sql    = "SELECT * FROM factures WHERE client='$client' AND nom='$nom' ORDER BY ordre DESC LIMIT 5";
    $res    = mysql_query($sql) or die ('Erreur : '.mysql_error());
     
    $today = date("d/m/Y");
    $etat5 = 'fin de durée';
    $etat6 = 'actif';
     
    $data  = array();
    $i     = -1;
     
    while($row = mysql_fetch_assoc($res)) {
       $end  = DateTime::createFromFormat("d/m/Y", $row['date_end']);
       $etat = ($today > $end) ? $etat5 : $etat6;
       $sql  = "UPDATE factures SET etat='$etat' WHERE ordre={$row['ordre']}";
       $exec = mysql_query($sql) or die ('Erreur : '.mysql_error());
       $row['etat'] = $etat; // on conserve le dernier état connu
     
       if ($row['produit'] === 'points recharge') {
          $row['renouveler'] = '<font size="1" color="green"><b>Achat points</b></font>';
       }
       else
       if ($row['etat'] === $etat5) {
          $row['renouveler'] = '<font size="1" color="red"><b><blink>Renouveler</blink></b></font>';
       }
       else {
          $row['renouveler'] = '<font size="1" color="green"><b>Renouveler</b></font>';
       }
     
       $row['tr_class'] = (++$i % 2) ? 'classe2' : 'classe1';
       $data[] = $row;
    }
    ?>
    <table width="560" border="0">
       <thead>
          <tr>
             <th class="td1" width="155">Produits</th>
             <th class="td1" width="157">Date achat</th>
             <th class="td1" width="137">Date de fin</th>
             <th class="td1" width="100">Etat</th>
             <th class="td1" width="137">Durée</th>
             <th class="td1" width="137">Renouveler</th>
          </tr>
       </thead>
       <tbody>
          <?php foreach($data as $row): ?>
          <tr class="prem <?php echo $row['tr_class']; ?>">
             <td width="130"><font size="1"><?php echo $row['produit']; ?></font></td>
             <td width="130"><font size="1"><?php echo $row['date']; ?></font></td>
             <td width="137"><font size="1"><?php echo $row['date_fin']; ?></font></td>
             <td width="100"><font size="1"><?php echo $row['etat']; ?></font></td>
             <td width="137"><font size="1"><?php echo $row['duree']; ?></font></td>
             <td width="137"><?php echo $row['renouveler']; ?></td>
          </tr>
          <?php endforeach; ?>
       </tbody>
    </table>

    en image :

    resultat avec date_end (format DATE en sql)



    et resultat avec date_fin (en type vachar sql)



    donc la je ne comprend plus trop ...

    merci de votre aide

  2. #42
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    essaye comme ça

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    ini_set('myssql.trace_mode', true);
    error_reporting(-1);
     
    $client = mysql_real_escape_string($client);
    $nom    = mysql_real_escape_string($nom);
    $sql    = "SELECT * FROM factures WHERE client='$client' AND nom='$nom' ORDER BY ordre DESC LIMIT 5";
    $res    = mysql_query($sql) or die ('Erreur : '.mysql_error());
     
    $today = new DateTime();
    $etat5 = 'fin de durée';
    $etat6 = 'actif';
     
    $data  = array();
     
    while($row = mysql_fetch_assoc($res)) {
       $end  = DateTime::createFromFormat("d/m/Y", $row['date_end']);
       $etat = ($today->getTimestamp() > $end->getTimestamp()) ? $etat5 : $etat6;
       $sql  = "UPDATE factures SET etat='$etat' WHERE ordre={$row['ordre']}";
       $exec = mysql_query($sql) or die ('Erreur : '.mysql_error());
       $row['etat'] = $etat; // on conserve le dernier état connu
     
       if ($row['produit'] === 'points recharge') {
          $row['renouveler'] = '<font size="1" color="green"><b>Achat points</b></font>';
       }
       else
       if ($row['etat'] === $etat5) {
          $row['renouveler'] = '<font size="1" color="red"><b><blink>Renouveler</blink></b></font>';
       }
       else {
          $row['renouveler'] = '<font size="1" color="green"><b>Renouveler</b></font>';
       }
     
       $row['tr_class'] = (++$i % 2) ? 'classe2' : 'classe1';
       $data[] = $row;
    }
    ?>
    <table width="560" border="0">
       <thead>
          <tr>
             <th class="td1" width="155">Produits</th>
             <th class="td1" width="157">Date achat</th>
             <th class="td1" width="137">Date de fin</th>
             <th class="td1" width="100">Etat</th>
             <th class="td1" width="137">Durée</th>
             <th class="td1" width="137">Renouveler</th>
          </tr>
       </thead>
       <tbody>
          <?php foreach($data as $row): ?>
          <tr class="prem <?php echo $row['tr_class']; ?>">
             <td width="130"><font size="1"><?php echo $row['produit']; ?></font></td>
             <td width="130"><font size="1"><?php echo $row['date']; ?></font></td>
             <td width="137"><font size="1"><?php echo $row['date_fin']; ?></font></td>
             <td width="100"><font size="1"><?php echo $row['etat']; ?></font></td>
             <td width="137"><font size="1"><?php echo $row['duree']; ?></font></td>
             <td width="137"><?php echo $row['renouveler']; ?></td>
          </tr>
          <?php endforeach; ?>
       </tbody>
    </table>

  3. #43
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Points : 51
    Points
    51
    Par défaut
    @stealth35 merci mais la j'ai un autre soucis car je ne peut même pas tester cette méthode, entre temps et car je commençais a en avoir marre j'ai changé d'os et suis passé sous centOS 5.5 avec plesk 10.3 et la surprise le php est un php 5.1 ... je suis dégouté car plus rien ne passe dessus je ne peut même pas installer un 2 eme phpmyadmin 3 car c'est incompatible avec cette version php, j'ai tenté une mise a jour de php mais il semblerais que plesk prend le dessus et empêche tout maj...

    je commence vraiment a me demander si je vais continuer .. je commence a perdre patiente déjà 4 mois que je suis sur le projet et a chaque fois y'a une c*** qui arrive, des fois quand je me lève je me dit que je vais allé bosser a l'usine et que je ne suis pas fais pour ce boulot.

    merci

  4. #44
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'inquete pas, déjà dans ta base met tout ça en datetime, ensuite coté PHP pour parser la date fait un strtotime

    je te conseil de tester sans base de donnée avant, une fois que c'est ok, tu pourra rajouter la connexion

  5. #45
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2007
    Messages : 130
    Points : 51
    Points
    51
    Par défaut
    bonjour,
    bon après un peu de repos j'ai tout réinstaller avec le bon php .

    je vient de tester ton code stealth35 mais la page ne veut pas s'afficher elle reste blanche, peut être le new datetime qui fais des siennes, j'ai testé en mettant date("d/m/Y") mais pareil la page reste blanche.

    merci

    -------------

    j'ai commenté cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #   $etat = ($today->getTimestamp() > $end->getTimestamp()) ? $etat5 : $etat6;
    et la page s'affiche

Discussions similaires

  1. Modifier variable Form1 en temps réél depuis form2
    Par furtif1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/11/2009, 09h59
  2. [Gestion onglets] Modifier Leurs Tailles ?
    Par MAXXPER dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 12/12/2006, 11h00
  3. Réponses: 3
    Dernier message: 13/04/2006, 21h55
  4. Modifier variable php suite à un clique
    Par budiste dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/11/2005, 16h06
  5. [D6] Modifier variable environnement système !?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 32
    Dernier message: 19/05/2005, 19h43

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