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. #1
    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 gestion temps (modifier variable)
    bonjour, je me casse la tete avec un soucis.

    en image :


    le code :

    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
     
    <?php
    /////---- desactivation
    $renvs=mysql_query("SELECT * FROM panel WHERE  nick_handle='$nick_handle' ORDER BY heure_connect DESC LIMIT 1") or die ('Erreur : '.mysql_error());
    $renv=mysql_fetch_assoc($renvs);
    $heure1=$renv['heure_connect'];
     
    $heure_fin = date("H:i:s", mktime(date("H"), date("i")+'20',  date("s")));
     
    if ($heure1 > $heure_fin)
    {
    $active2="off_line";
    $sql=("UPDATE panel SET  active='$active2' WHERE nick_handle='$nick_handle' AND client='$client'");
    $data=mysql_query($sql) or die (mysql_error());
    }
    ?>
    ce que je cherche a faire c'est mettre a jour la bdd, c'est a dire que toute connexion dépassant 20 minutes pass en off-line hors je n'y arrive pas,
    les temps sont correct :

    $heure1 = heure de connexion du membres sous forme 00.00.00
    $heure_fin = heure du moment + 20 minutes

    donc dans la bdd toutes les connexion dépassant cette heure de fin doivent être désactivé sauf celle en cours.

    merci car la je tourne en rond depuis ce matin voir même tôt/tard dans la nuit ...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    ce que je cherche a faire c'est mettre a jour la bdd, c'est a dire que toute connexion dépassant 20 minutes pass en off-line
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE panel
    SET active = 'off_line'
    WHERE active = 'on_line' AND heure_connect < NOW( ) - INTERVAL 20 MINUTE
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    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 : 47
    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
    Bonjour,

    Plusieurs questions :
    - Pourquoi avoir séparé date et heure ? Un timestamp aurait été tout aussi approprié.
    - Quand tu dis "toutes les connexion dépassant cette heure de fin doivent être désactivé sauf celle en cours", comment sais-tu que celle en cours ne dépasse pas le temps limite ? La session peut avoir été initialisée longtemps auparavant et être encore active ou inactive. Comment le savoir ? Tu devrais avoir un champ du type : activity avec un timestamp.

    Sinon pour ta requête : tu peux le faire directement via les fonctions de MySql, pas besoin de cuisine en local :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIME_TO_SEC(`heure`) < (TIME_TO_SEC(NOW()) - 20*60)";
    Avec ton approche (séparer date et heure), ça va être mariole si les connexions démarrent la veille genre 23h55 et tu contrôles à 00h10 par exemple... Pour ce cas de figure, il est plus simple de reconstituer un timestamp (qui aurait dû être présent dès le début, mais bon):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIMESTAMPDIFF(MINUTE, DATE_ADD(`date`, INTERVAL `heure` HOUR_SECOND), NOW()) > 20";
    Sauf boulette de ma part

  4. #4
    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

    alors j'ai fais comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE panel SET active='off_line' WHERE nick_handle='$nick_handle' AND client='$client' AND TIMESTAMPDIFF(MINUTE, DATE_ADD(`date_connect`, INTERVAL `heure_connect` HOUR_SECOND), NOW()) > 20";
    au début j'avais deux on-line et il me les a bien fermés par contre si je me
    reconnecte je ne passe pas a on-line je reste a off-line même connecté et dans les - de 20mn d’écart, mais je croit que c'est du au passage de 23h00 a 00h00 car les délais sont bizarre car la il m'ajoute 1h30 sur le total:

    Connexion : 23:28:53
    Autorisé : 00:56:22
    alors que tout a l'heure il m'indiquait bien la différence.

    je vais attendre demain pour voir si ca vient vraiment du passage a 00h00

  5. #5
    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
    alors j'ai réussi a régler ce soucis maintenant j'ai un soucis au niveau d'un comparaison de date.

    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
     
     
    $etat5 ='fin de durée';
    $etat6 ='actif';
     
    /////-----mise a jour duree
    	$datejour = date('d/m/Y');
    	//la date du fin est stocké dans une base de données
            //on extracte la date du fin depuis la bdd et on la met dans une variable $datefin
    	$datefin= $env['date_fin'];  
     
            //explode pour mettre la date du fin en format numerique: 12/05/2006  -> 12052006
    	$dfin = explode("/", $datefin); 
     
            //explode pour mettre la date du jour en format numerique: 31/05/2009  -> 31052009
            $djour = explode("/", $datejour); 
     
            // concaténation pour inverser l'ordre: 12052006 -> 20060512
    	$finab = $dfin[2].$dfin[1].$dfin[0];
            // concaténation pour inverser l'ordre: 31052009 -> 20090531
    	$auj = $djour[2].$djour[1].$djour[0]; 
     
    	// Ensuite il suffit de comparer les deux valeurs
     
    	if ($auj>$finab)
    	 { $sql=("UPDATE factures SET  etat='$etat5' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
    	else
         { $sql=("UPDATE factures SET  etat='$etat6' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
     
    //// fin mise a jour
    tout passe en "fin de durée" alors que certaine date de fin sont encore valide.

    merci

  6. #6
    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 : 47
    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
    Bonjour,

    Pour les dates il faut arrêter la cuisine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $today = new DateTime('now');
    $end   = DateTime::createFromFormat('d/m/Y', $env['date_fin']);
    if ($today > $end) {
     
    }

  7. #7
    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,
    j'ai fais comme ca mais la je n'est plus rien ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /////-----mise a jour duree
         $today = new DateTime('now');
         $end   = DateTime::createFromFormat('d/m/Y', $env['date_fin']);
         if ($today > $end) 
     
    	 { $sql=("UPDATE factures SET  etat='$etat5' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
    	else
         { $sql=("UPDATE factures SET  etat='$etat6' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
    ----------------

    j'ai modifier la premiere ligne qui me mettais en default :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /////-----mise a jour duree
         $today = date("d/m/Y");
         $end   = DateTime::createFromFormat('d/m/Y', $env['date_fin']);
         if ($today > $end) 
     
    	 { $sql=("UPDATE factures SET  etat='$etat5' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
    	else
         { $sql=("UPDATE factures SET  etat='$etat6' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
    voila le résultat :



    les deux reste en etat actif alors que l'une des date n'est plus valable.

  8. #8
    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 : 47
    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
    T'es sûr que $env['date_fin'] renvoie quelque chose ?
    Parce que ceci fonctionne très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $today = new DateTime('now');
    $start = DateTime::createFromFormat('d/m/Y', '01/01/2011');
    if ($today > $start) {
       echo 'testOk';
    }

  9. #9
    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
    et bien oui, regarde sur l'image la date de fin est un echo de $env['date_fin']

  10. #10
    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 : 47
    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
    les deux reste en etat actif alors que l'une des date n'est plus valable.
    Vu que c'est un if/else, une requête UPDATE est envoyée quoi qu'il arrive donc le problème se situe au niveau de ton SQL ou d'un rafraichissement manquant

  11. #11
    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
    dans sql les deux dates sont en vachar .

    j'ai un enregistrement de date d'achat et un de date de fin

    ex :

    $date1=$env['date']; = ma date d'achat

    $date_fin2=$env['date_fin']; = la date de fin

    donc en faite je cherche juste a changer le statut des que l'une des date de fin est inferieur a la date du jour

  12. #12
    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 : 47
    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
    dans sql les deux dates sont en vachar
    Cherches pas plus loin, le problème est là. Quand tu mets une date en varchar (simple texte), tu perds le sens des différents composants (jour, mois, année). Deuxième erreur : tu as conservé le formatage jj/mm/aaaa, tu aurais dû formater ainsi aaaammjj et dans ce cas tu aurais pu conserver (à la rigueur) ton format texte.

  13. #13
    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
    en faite je vient de pigé un truc, la variable $date_fin2 est dans un tableau dynamique don elle n'affiche que la date de fin correspondant a la varibale $ordre.

    si je fais un echo $date_fin2 j'ai les deux dates se trouvant dans la base sql

    resultat de l'echo : 14/11/201207/11/2011

    ce qui fous le bordel..

    pour mieux te montrer voici le code complet :

    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
    <?php
     
    $envs=mysql_query("SELECT * FROM factures WHERE client='$client' AND nom='$nom' ORDER BY ordre DESC LIMIT 5") or die ('Erreur : '.mysql_error());
    $total5 = mysql_num_rows($envs);
     
     
    //début du tableau
    echo '<table width="560" border="0"><tr>
    <td class="td1" width="155px">Produits</td>
    <td class="td1" width="157px">Date achat</td>
    <td class="td1" width="137px">Date de fin</td>
    <td class="td1" width="100px">Etat</td>
    <td class="td1" width="137px">Duree</td>
    <td class="td1" width="137px">Renouveller</td></tr>'; //Création du tableau
    for ($i=0;$i<10;$i++)
     
    while ($env = mysql_fetch_array($envs))
    {
    $produit1=$env['produit'];
    $date1=$env['date'];
    $duree1=$env['duree'];
    $etat1=$env['etat'];
    $transaction_id1=$env['transaction_id'];
    $date_fin2=$env['date_fin'];
    echo $date_fin2;
    ////-----
     
    $point_rec='points recharge';
    $etat5 ='fin de durée';
    $etat6 ='actif';
     
    /////-----mise a jour duree
         $today = date("d/m/Y");
         $end   = $env['date_fin'];
         if ($today > $end) 
     
    	 { $sql=("UPDATE factures SET  etat='$etat5' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
    	else
         { $sql=("UPDATE factures SET  etat='$etat6' WHERE nom='$nom' AND client='$client'  ");
           $data=mysql_query($sql) or die (mysql_error());}
     
     
    //// fin mise a jour
     
    if ($etat1 == $etat5) 
        {$renouveller='<font color="red"><blink>Renouveller</blink></font>';}
    else
        {$renouveller = '<font color="green">Renouveller</font>';}
     
    if ($produit1 == $point_rec) 
        {$renouveller ='<font color="green">Achat points</font>';}
     
     
    {
     
    	echo '<tr class="prem '.( ($i % 2 == 0) ? 'classe1' : 'classe2' ).'">';
    	echo '<td width="130px"><font size="1">'.$produit1.'</font></td>'; //Création d'une nouvelle colonne
    	echo '<td width="130px"><font size="1">'.$date1.'</font></td>'; //Création d'une nouvelle colonne
    	echo '<td width="137px"><font size="1">'.$date_fin2.'</font></td>'; //Création d'une nouvelle colonne
    	echo '<td width="100px"><font size="1">'.$etat1.'</font> </td>'; //Création d'une nouvelle colonne
    	echo '<td width="137px"><font size="1">'.$duree1.'</td></font>'; //Création d'une nouvelle colonne
    	echo '<td width="137px"><font size="1"><b>'.$renouveller.'</b></td></font>'; //Création d'une nouvelle colonne
    	echo '</tr>'; //Fin de la ligne
     
    	}
     
      $i++;	
    } //fin de la boucle sur les résultats
    echo '</table>'; //Fermeture du tableau
      ?>

  14. #14
    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 : 47
    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
    J'ai regardé ton script :
    ligne 5 : $total5 jamais utilisé
    ligne 16 : for() inutile : pas d'accolade ouvrante

    Formatage du tableau incorrect : aucun thead | tbodyL'attribut width ne prend pas d'unité

    Après pour ton problème de date, il faut regarder de plus près ta syntaxe SQL car je ne vois pas de $ordre

  15. #15
    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
    nom excuse y'a pas de $ordre il s'agit juste d'une auto incrementation dans la bdd

    mais comment faire en sorte que $date_fin n'affiche pas toutes les dates a l'affiler et que je puisse juste comparer une date de fin avec une date de jour afin de modifier la valeur.

    et pour le tableau ce sont des membres (moderateur) d'ici qui m'avais corrigé a l'époque je n'est rien changé depuis..

  16. #16
    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 : 47
    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
    Si tu as des dates à la queue le leu, cela veut dire que ton champ date_fin contient ces dates. Un SELECT * FROM factures; ne concatène pas tout seul les champs de la table (heureusement). Donc, il faut aller vérifier ta table.

  17. #17
    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 : 47
    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
    J'ai repris ton code, je l'ai corrigé et présenté différemment :
    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 = 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 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>
    Sauf boulette de ma part.

  18. #18
    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 c'est très sympa de prendre du temps pour m'aider, je vient de tester mais il doit y avoir une erreur de syntax car la page reste blanche et ne s'ouvre pas, j'ai cherché mais je voit pas trop ou ca bloque.

    merci


    alors j'ai modifier cette ligne

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

    maintenant la page s'afficher bien mais la date qui etais inferieur a la date du jour ne s'affiche plus,

    je n'est plus que celle qui est encore valable par contre en bdd le statut de l'autre n'a pas changé

    en faite le tableau ne m'affiche qu'une seule date et la derniere,
    j'ai fais un test en inversant les numero ordre et j'ai l'affichage de l'autre mais meme si la date n'est pas bonne cela rest toujours en "actif"

  19. #19
    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 : 47
    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
    Peut en mettant ceci en ligne 19 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $exec = mysql_query($sql) or die ('Erreur : '.mysql_error());
    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = mysql_query($sql) or die ('Erreur : '.mysql_error());
    Si tu as modifié tes champs en date et que tu es absolument sûr des données contenues dans ta base, je ne vois pas trop pourquoi ça ne fonctionne pas comme prévu. Il faut continuer à creuser jusqu'à peut-être trouver du pétrole

  20. #20
    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
    effectivement j'ai bien l'affichage de mes deux lignes.

    par contre sur celle ci j'ai

    06/11/2011 | 07/11/2011 | actif
    alors que la date fin est inferieur a la date du jour elle reste en mode actif

    edit : tu veut dire que dans la bdd je doit passer de vachar a date sur les deux données $date et $date_fin ?

    je sais que c'est pas clin mais ma table est comme ca :


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