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. #21
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu as mis tous les champs de ta base de données en VARCHAR sauf les autonum.
    C'est l'enfer un truc pareil, je veux bien croire que le typage des données est dynamique mais faut pas non plus trop pousser PHP dans les orties.

    Bon, commentes ma boulce while() et remplace là par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row = mysql_fetch_assoc($res)) {
       print_r($row);
       exit();
    }
    Mets moi ce que te sort ce bout de code

  2. #22
    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
    bais en faite ma page est blanche ...


    j'ai retiré le xit en fin de ligne

    j'obtient

    Array ( [ordre] => 16 [numero] => 8774559 [client] => 94355867 [nom] => lebaron [prenom] => olivier [date] => 05/11/2011 [date_fin] => 10/11/2011 [produit] => formule_Optimal [prix] => 5.40 [type_achat] => allopass [duree] => 1 [etat] => actif [transaction_id] => c12e1aaf-02e1-4770-9e03-0da6d8af1093 [reglement] => micro/vir/ch/cb ) Array ( [ordre] => 15 [numero] => 22958983 [client] => 94355867 [nom] => Lebaron [prenom] => olivier [date] => 11/11/2011 [date_fin] => 11/11/2012 [produit] => rottax2.com [prix] => 17.82 ttc [type_achat] => allopass [duree] => 1 [etat] => actif [transaction_id] => f20e7f5f-a30f-4ea2-a07b-20c944282291 [reglement] => micro/vir/ch/cb )

  3. #23
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Le résultat que tu m'as mis contient 2 tableaux -> c'est bien 2 itérations que tu as posté ?

    J'ai modifié le code en injectant ces données et mon code est tout à fait fonctionnel :
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?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 = new DateTime('now');
    $etat5 = 'fin de durée';
    $etat6 = 'actif';
     
    $data  = array();
    $i     = -1;
     
    $res[] = array(
       'ordre' => '16',
       'numero' => '8774559',
       'client' => '94355867',
       'nom' => 'lebaron',
       'prenom' => 'olivier',
       'date' => '05/11/2011',
       'date_fin' => '10/11/2011',
       'produit' => 'formule_Optimal',
       'prix' => '5.40',
       'type_achat' => 'allopass',
       'duree' => '1',
       'etat' => 'actif',
       'transaction_id' => 'c12e1aaf-02e1-4770-9e03-0da6d8af1093',
       'reglement' => 'micro/vir/ch/cb'
    );
     
    $res[] = array(
       'ordre' => '15',
       'numero' => '22958983',
       'client' => '94355867',
       'nom' => 'Lebaron',
       'prenom' => 'olivier',
       'date' => '11/11/2011',
       'date_fin' => '11/11/2012',
       'produit' => 'rottax2.com',
       'prix' => '17.82 ttc',
       'type_achat' => 'allopass',
       'duree' => '1',
       'etat' => 'actif',
       'transaction_id' => 'f20e7f5f-a30f-4ea2-a07b-20c944282291',
       'reglement' => 'micro/vir/ch/cb'
    );
     
    foreach($res as $row) {
    //while($row = mysql_fetch_assoc($res)) {
       $end  = DateTime::createFromFormat('d/m/Y', $row['date_fin']);
       $etat = ($today > $end) ? $etat5 : $etat6;
       $sql  = "UPDATE factures SET  etat='$etat' WHERE nom='$nom' AND client='$client';";
       //$exec = mysql_query($sql) or die ('Erreur : '.mysql_error());
     
       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) ? 'class2' : 'class1';
     
       $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>
    Pas de page blanche, tout roule.
    Donc là je sèche.

  4. #24
    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
    non je n'est pas de page blanche, le résultat que j'ai récupérer est ce qui se trouve en bdd soit 2 lignes pour le même client.

    tout a l'aire de fonctionner mais je reste sur le même résultat la date qui se trouve être inférieur a toujours son statut en actif.


  5. #25
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ca y est je pense avoir trouvé :
    Dans ma boucle remplace le début par ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       $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
    Et je te conseillerai d'utiliser un id pour la mise à jour en lieu et place de nom et client. Allez je croise les doigts...

  6. #26
    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
    j'ai fais 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
    <?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 = new DateTime('now');
    $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_fin']);
       $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) ? 'class2' : 'class1';
       $data[] = $row;
    }
    ?>

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

    c'est marant comme quoi la ligne

    $today = new DateTime('now');

    ne passe pas je suis obligé de faire

    $today = date("d/m/Y");

    donc la sa s'affiche mais pas de changement de statut ..

  7. #27
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    est ce que tu peux tester : $exec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($exec) { echo 'ok'; exit(); }

  8. #28
    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
    bon j'ai vraiment des truc bizarre.. j'ai retiré exit() car page bugué

    sinon resultat : okokokokok

  9. #29
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu dis que le mysql_query() retourne true c'est à dire que la modif se fait et que tu ne vois rien en base de données c'est bien ça ?

  10. #30
    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
    oui en base ca reste en actif et sur la page idem.
    j'ai essayé d'inverser

    $etat = ($today > $end) ? $etat5 : $etat6;

    par

    $etat = ($today > $end) ? $etat6 : $etat5;

    le statut change bien, je pense que c'est au niveau des dates.

    vus que je n'est pas grand choses sur la tables facture je pourrais passer les deux date et date_fin au format date au lieux de vachar.

    je sais plus trop

    ---

    j'ai aussi essayé de changer le statut manuelement dans la bdd mais il revient a actif des que j'actualise la page

  11. #31
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par asus02 Voir le message
    je sais plus trop
    Je dois t'avouer que moi-aussi je sèche. C'est pas normal que DateTime ne passe pas, si DateTime::createFromFormat() passe sans problème.
    Quelle version de PHP utilises tu ?
    Installation neuve ou vieux machin ?

  12. #32
    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
    php5
    debian

    install recente

    http://www.servrtx.net/info.php

  13. #33
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par asus02 Voir le message
    php5.3.8 ?

  14. #34
    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
    je t'ai mis le php info au dessus

  15. #35
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Oui j'ai vu après coup
    J'ai parcouru ton phpinfo() et je ne vois rien de particulier.

    Si tu décides de remettre des champs au format adéquate ne t'arrête pas qu'aux dates (enfin si tu as le temps et sans avoir à tout te retaper).

    Mais pour ton problème je sèche complètement.
    Est ce que si tu lances uniquement au début de ton script qu'un simple UPDATE de ta table avec des données au hasard, ça passe ? Ne lance rien d'autre.

    Fais aussi un essai en désactivant apc.

  16. #36
    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
    je vient de tester le code que tu avais utilisé pour ton test et j'ai la meme erreur avec le datetime('now') pourtant en utilisant une page avec uniquement le code, il doit y a voir un loup ce n'est pas normal ..

  17. #37
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bon je suis totalement incompétent sur Linux donc je ne vais pas pouvoir t'aider plus que ça sur ce coup.
    exit() qui bug, DateTime('now') qui bug, mysql_query() qui ne fait pas ce qu'il annonce... Je pense que cela fait bcp de coincidences quand même.

  18. #38
    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
    j'ai fais comme il dise sur ce tuto mais cela rest pareil...

    http://wiip.fr/content/probleme-apc-phpmyadmin

  19. #39
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Allez je passe la main, désolé...

  20. #40
    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
    merci quand meme pour le temps passé

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