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 :

Affichage d'une image spécifiée selon 2 champs date et date du jour [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut Affichage d'une image spécifiée selon 2 champs date et date du jour
    Bonjour,

    J'ai 3 images old.png / new.png et perim.png, dans ma table j'ai deux champss "date_du" et "date_au", comment faire pour affiché une des images selon la date explication:

    Exemple 1:
    Nous sommes le 27/12/11
    Date_du 26/12/11
    Date_au 28/12/11
    Je doit affiché l'image nouv.png

    Exemple 2:
    Nous sommes le 27/12/11
    Date_du 24/12/11
    Date_au 26/12/11
    Je doit affiché l'image perim.png

    Exemple 3:
    Nous sommes le 27/12/11
    Date_du 29/12/11
    Date_au 30/12/11
    Je doit affiché l'image proch.png

    en faite cela :

    Si date_du & date_au sont egal à ce jour m'afficher l'image nouv.png
    Si date_du & date_au sont inférieur à ce jour m'afficher l'image perim.png
    Si date_du & date_au sont superieur à ce jour m'afficher l'image proch.png
    J’espère avoir été le plus clair possible

    Merci de vos lumières car la j'avoue ne pas savoir ou commencé.

  2. #2
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Bon ya pas foule, apparement se serai avec "mktime" http://php.net/manual/fr/function.mktime.php par contre je ne voit pas comment l'inclure dans mon script déjà présent :

    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
    <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'consignes';
     
    require('pages/fonctions_dates.php');
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
      $select = 'SELECT * FROM tb_clients_sites c
    INNER JOIN tb_consignes_temp s ON s.clients_sites_id = c.idclients_sites
    GROUP BY c.clients_sites
    ORDER BY c.clients_sites';
     
     
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    if($total) {
       --------------------- -------------------------
       ------- MON TABLEAU ICI ---------------------
        --------------------- -------------------------
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    mysql_free_result($result);
     
    ?>

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Re

    Fais des recherches du genre "MySQL select switch case" (grosso modo), tu devrais trouver des infos/exemples.

    Juste un exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT un_id,
    CASE
    WHEN NOW() > date_du
    THEN "nouv.png"
    WHEN NOW() < date_au
    THEN "perim.png"
    WHEN NOW() > date_du AND NOW() < date_au
    THEN "proch.png"
    END AS "mon_image"
    FROM une_table
    Le champ à exploiter sera -> "mon_image".
    (Les conditions des case sont pour exemple (la fatigue ), donc à adapter).

  4. #4
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci a toi je fonce trouvé cela

  5. #5
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Malgré de nombreuses recherches et de nombreuses lectures (suite à ton aide) je ne trouve pas comment faire cette choses.

  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 : 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
    Bonsoir,
    L'approche de RunCodePhp est très bonne, je te propose une autre alternative :
    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
    <?php
     
    $sql  = 'SELECT DATE_FORMAT(date_du, "%Y%m%d"), DATE_FORMAT(date_au, "%Y%m%d") FROM uneTable';
    $exec = mysql_query($sql);
     
    $data = array();
    $now  = date('Ymd') * 1;
     
    while($row = mysql_fetch_assoc($exec)) {
       if ($now < $row['date_du']) {
          $row['image'] = 'proch.png';
       }
       else
       if ($now > $row['date_au']) {
          $row['image'] = 'perim.png';
       }
       else {
          $row['image'] = 'nouv.png';
       }
       $data[] = $row;
    }
     
    ?>

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par rawsrc
    je te propose une autre alternative
    Elle est théoriquement meilleure

    Ca m'a un peu dérangé de proposer ce code, car l'alternative (la logique) dans la requête se base en partie sur des éléments de vues, des images.

    Dans un concept (ou design patern) comme MVC (Model View Controller), il n'est théoriquement pas correcte ou judicieux de mélanger des données de type vue ou modèle.

    La raison est simple : Si un jour on renomme une des images, voire en supprimer une, c'est la requête SQL qui tombe à l'eau.
    Ca peut être un vrai casse-tête de déboguer le code.

    Il est peut plus simple, voir plus logique de faire cette alternative au niveau de la vue, ou du controller.

    De plus, si on estime que le risque est assez important que ces images soient renommer ou supprimer un jour, on peu toujours rajouter une petite sur-couche de code, comme vérifier l’existence des ces fichiers (file_exist()), et générer une erreur au cas où une n'existerait pas (genre trigger_error()).
    Grosso modo, on s'aide soit même à déboguer plus facilement/rapidemment son code.


    Malgré de nombreuses recherches et de nombreuses lectures (suite à ton aide) je ne trouve pas comment faire cette choses.
    Il n'y avait pas vraiment besoin de rechercher d'autres tutos, j'ai dis ça juste pour que tu trouve de plus amples exemples ou explications pour mieux comprendre comment ça marche.
    Fallait juste adapter un peu au niveau des 3 conditions.

    Un case en SQL fonctionne de la même manière qu'un switch case en Php, ce n'est que des alternatives, la logique est la même, c'est comme des successions de if | else if | else.
    En résumer, ce n'est qu'une question de logique pure et dure (faut pas chercher plus compliqué que cela est).


    Mais exploite plutôt le code de rawsrc, pour les raisons que j'ai évoqués précédemment.

    Ceci dit, en te basant sur le code de rawsrc (sa logique), essai de rectifier/tranposer les conditions de mon code au niveau du SQL, c'est un bon exercice

  8. #8
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci à vous deux je regarde cela

    Edition:

    En faite le truc que je ne comprend pas surtout au niveau du fonctionnement (je n'ai pas cherché de tutos ou de scripts tous fait, j'explique :

    J'ai un tableau :

    CLIENT | DATE DERNIÈRE CONSIGNE | STATUT | LIRE

    Celui-ci regroupe tous mes clients de la base, la date de la dernière consigne ajoutée, le statut d'une des consignes en cours (avec les fameuses images) et un lien menant vers tous les consignes du client choisi.

    Je ne comprend pas comment faire pour mettre une des images selon le statut d'une des dates d'une consigne se trouvant dans le lien.

    Pour faire simple :
    1/ Si l'icone est vert (nouv.png) , cela veut dire qu'il y a une consigne ayant pour période la date de ce jour et qu'il faut se bougé les fesses pour les lires
    2/ Si l'icone est rouge (perim.png) une des consigne est périmé et donc à archivé.
    3/ Si l'icone est grisé (proch.png) consigne avec des dates qui arrivent.
    Voila j’espère avoir été clair.

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Je ne comprend pas comment faire pour mettre une des images selon le statut d'une des dates d'une consigne se trouvant dans le lien.
    Si je comprends bien, ici tu rajoute aux conditions une nouvelle donnée : un statut.
    A savoir que tu ne l'avais pas évoqué.

    Si, pour afficher la bonne image il faut non seulement tenir compte des 2 dates (du - au) mais aussi de la valeur du statut, il faudrait rajouter cette donnée dans la requête (le SELECT), pour après, l'exploiter dans les alternatives.

    (A savoir que plus il y aura de paramètres à tenir compte, plus il y aura d'alternatives).

    Quelle valeur peut avoir ce statut ? 0 ou 1 ?
    Qu'est ce qu'il faut faire (ou afficher comme image) selon ces date et statut ?


    Si tu parviens à bien exprimer toutes les conditions (comme ton 1er post), normalement le Php devrait facilement se transposer.


    CLIENT | DATE DERNIÈRE CONSIGNE | STATUT | LIRE
    Ici on ne vois plus ces 2 date que tu avais (date_du, date_au), mais qu'une seule date.
    Est-ce normal ?

    A savoir que, (selon ce modèle de Bdd ci-dessus), s'il y a plusieurs date de consigne pour un même client + même statut + lire (les 3 réunis, j'insiste), alors on aurait une relation 1,n sur cette donnée là, par conséquent on peu envisager de sortir cette donnée de cette table pour créer une table dédiée (genre consigne_client).

    Par la suite ça peu facilité les requête SQL pour rechercher la bonne date de consigne selon telle ou telle condition.

    Mais c'est pure réflexion, faut voir.

  10. #10
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Salut à toi

    Quand je parle de Statut c'est en faite le nom de la colonne qui correspond à l'affichage d'une des 3 images .

    Qu'est ce qu'il faut faire (ou afficher comme image) selon ces date et statut ?
    Cela reprend le post 1 :

    Exemple 1:
    Nous sommes le 27/12/11
    Date_du 26/12/11
    Date_au 28/12/11
    Je doit affiché l'image nouv.png

    Exemple 2:
    Nous sommes le 27/12/11
    Date_du 24/12/11
    Date_au 26/12/11
    Je doit affiché l'image perim.png

    Exemple 3:
    Nous sommes le 27/12/11
    Date_du 29/12/11
    Date_au 30/12/11
    Je doit affiché l'image proch.png
    Merci à toi

  11. #11
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Cela reprend le post 1 :
    Ces 2 dates (date_du, date_au) seraient de ta propre vision ou approche, elles ne seraient pas présentes dans ta Bdd, ce qui pour nous fausse pas mal notre jugement, si c'est le cas bien sûr.

    Faudrait éclaircir ce point là, car ça devient flou.

    Est-ce que ceci est la réalité, ta structure de table :
    CLIENT | DATE DERNIÈRE CONSIGNE | STATUT | LIRE
    Tu pourrais éventuellement récupérer/exporter cette structure via PhpMyAdmind, et la poster ici.


    NB : J'ai rajouter quelques remarque dans mon post précédant, pas certain que tu l'ai lu, ça peut être une idée.

  12. #12
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    En effet c'est très brouillons parfois et je m'en excuse, pour plus de simplicité voici ma table qui je pense va éclaircire certains points :

    ### tb_consignes ###
    `idconsignes` => L'ID de la consigne
    `datej` => Date de création de la consigne
    `datec` => Date du contact avec le client pour donné la consigne
    `date_du` => Date Début de la consigne
    `date_au` => Date de Fin de la consigne
    `consignes` ,=> La consigne
    `clients_sites_id` => ID client via jointure
    `idtypeconsignes` => ID Type de consigne via jointure
    Concernant mon Tableau :
    CLIENT | DATE DERNIÈRE CONSIGNE | STATUT | LIRE
    ID CLIENT | datej | Image Statut | LIEN via ID

    Requête pour faire mon tableau (en cours de refonte):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql = ' SELECT * 
    FROM tb_clients_sites 
    INNER JOIN tb_consignes ON (tb_clients_sites.idclients_sites =  tb_consignes.clients_sites_id )
    INNER JOIN tb_types_consigne ON (tb_consignes.idtypeconsignes =  tb_types_consigne.idtypeconsignes) 
    GROUP BY clients_sites
    ORDER BY clients_sites';
    Concernant le lien :
    Ici toutes les consignes du client sélectionné via l'ID dans un tableau :

    datej => Date de création
    datec => Date du contact avec le client pour donné la consigne
    date_du => Date Début de la consigne
    date_au => Date de Fin de la consigne
    consignes => La consigne

    et cela par le nombre de consigne

    Donc dans mon tableau j'aimerai affiché une des images en fonction des dates de consigne du client qui correspond a la ligne de mon tableau.

    Code complet pour affichage tableau
    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
     
    <?php
     
    include('conf.php');
    require('pages/fonctions_dates.php');
     
    $sql = ' SELECT * 
    FROM tb_clients_sites 
    INNER JOIN tb_consignes ON (tb_clients_sites.idclients_sites =  tb_consignes.clients_sites_id )
    INNER JOIN tb_types_consigne ON (tb_consignes.idtypeconsignes =  tb_types_consigne.idtypeconsignes) 
    GROUP BY clients_sites
    ORDER BY clients_sites';
     
    $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
    $total = mysql_num_rows($requete);
     
    if($total) {
     
        echo '<center><table bgcolor="#FFFFFF" border="1" cellpadding="0" style="border-color:#999" width="800px">'."\n";
     
            echo '<td background="img/fdc.png" width="490" align="center"><b><u>CLIENT / SITE</u></b></td>';
            echo '<td background="img/fdc.png" width="130" align="center"><b><u>DER.CONSIGNE</u></b></td>';
            echo '<td background="img/fdc.png" width="67" align="center"><b><u>STATUT</u></b></td>';
            echo '<td background="img/fdc.png" "width="27" align="center"><b><u>LIRE</u></b></td>'; 
    		    echo '<tr>';
     
     while($row = mysql_fetch_array($requete)) {
    		    echo '<td bgcolor="#F9F9F9">'.$row['clients_sites'].'</td>';
            echo '<td bgcolor="#F9F9F9"><center>'.dateFR($row['datej']).'</center></td>';
            echo '<td><center><img src="img/proch.gif"></center></td>';
            echo '<td bgcolor="#F9F9F9"><center><a href=\'pages/consignes.php?id='.$row['idclients_sites'].'\', title=\'Consigne Permanente pour '.$row['clients_sites'].'\' rel=\'gb_page_center[900, 700]\'><img src="./img/c_perm.png"></a></center></td>';
    		    echo '</tr>'."\n";
        }
     
    	echo '</table>';
    }
    else echo 'Pas de consignes en cours ...';
     
    mysql_free_result($requete);
     
    ?>

    Voila je pense que toutes les données y sont Merci à toi.

  13. #13
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ok, c'est mieux d'avoir ça sous les yeux.

    Question à tout hasard.
    Je remarque que tu as un idtypeconsignes. Est ce que le type de consigne ne définirait pas la plage de date, une durée de consigne (date_du, date_au) ?

    Ou dit autrement, est-ce obligatoire de définir (voir redéfinir) pour chaque consigne (donc à chaque fois) une plage de date ?

    De mon coté j'ai tendance à penser que ce n'est pas la consigne qui définirait cette durée, mais le type.

    Toujours est il que s'il y a moyen de ne pas avoir cette donnée là dans cette table, ça devrait facilité les choses.
    Mais il faut en être certain, il suffit qu'il y ait 1 seule consigne, et là ce n'est plus bon (ton modèle est le bon).


    Cependant, en admettant qu'il soit obligatoire d'avoir cette plage de date pour chaque consigne, on peu aussi envisager de ne pas définir 2 dates (date_du, date_au), mais une durée, comme un timestamp.
    Comme mettre 1 jour, soit 86400 secondes (car un timestamp c'est en secondes).
    Comme les comparaisons sont faites selon la date en cours, ça peu facilité les traitements.
    Faut voir.


    Mise à part tout ça, ta structure de table me semble correcte.
    As tu essayer d'intégrer le code que t'as donné rawsrc ?
    Entre autre ceci :
    Code rawsrc : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT(date_du, "%Y%m%d") AS dateDu, DATE_FORMAT(date_au, "%Y%m%d") AS dateAu
    (j'ai rajouté des alias, comme dateDu et dateAu).
    (n'oublie pas que les alias ça facilite la création du code SQL)
    Dans ton code ci-dessus, tu fais toujours un SELECT *

  14. #14
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci à toi pour ta rapidité

    Je remarque que tu as un idtypeconsignes. Est ce que le type de consigne ne définirait pas la plage de date, une durée de consigne (date_du, date_au) ?
    Alors pour "idtypeconsignes" , c'est juste une table qui me permet de définir le Type de consigne (provisoire et temporaire) je n'ai que : ID / type dans celle-ci

    Ou dit autrement, est-ce obligatoire de définir (voir redéfinir) pour chaque consigne (donc à chaque fois) une plage de date ?

    De mon coté j'ai tendance à penser que ce n'est pas la consigne qui définirait cette durée, mais le type.

    Toujours est il que s'il y a moyen de ne pas avoir cette donnée là dans cette table, ça devrait facilité les choses.
    Mais il faut en être certain, il suffit qu'il y ait 1 seule consigne, et là ce n'est plus bon (ton modèle est le bon).
    Chaque consignes à une date de début et de fin bien précise hormis les consignes Permanentes (ID 2) donc je pense que oui.

    (j'ai rajouté des alias, comme dateDu et dateAu).
    (n'oublie pas que les alias ça facilite la création du code SQL)
    Dans ton code ci-dessus, tu fais toujours un SELECT *
    __________________
    Comme j'ai dit (en cours de refonte) j'ai refait tous mon code cette nuit ensuite je m'attaque à ce que tu ma dit concernant les ID identique pour les jointures et les alias

  15. #15
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Chaque consigne à une date bien précise donc je pense que oui
    C'était à tout hasard. Comme c'est ainsi, alors c'est bon.

    Comme j'ai dit j'ai refait tous mon code cette nuit ensuite je m'attaque a ce que tu ma dit concernant les ID identique pour les jointures et les alias
    Je dirais yapluka

    Théoriquement tu as tous les éléments, entre l'ancien topic pour les alias et le code de rawsrc, tu devrais parvenir à produire le tableau que tu veux.



    Juste par curiosité, si c'est pas indiscret, c'est quoi les consignes ?
    Des bouteilles (eau, vin, ...), bouteilles de gaz, objets perdus ?

  16. #16
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Bon ba je m'occupe du bib de ma fille et yaquacodéetsurtoutseprendrelatete merci pour ton aide ainsi qu'a rawsrc

    Juste par curiosité, si c'est pas indiscret, c'est quoi les consignes ?
    Des bouteilles (eau, vin, ...), bouteilles de gaz, objets perdus ?
    lol non pas encore enfin quoi que, je taff dans une boite de télésurveillance mobile et donc pas mal de consignes, pour l'instant on le fait sur excel mais pas vraiment pratique.

  17. #17
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Re moi,

    Après moultes et moultes essais je n'arrive pas a faire ce que je souhaite malgré l'aide que vous m'avez fournit... c'est grave ... j'en pête un cable

  18. #18
    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
    Bonjour,

    allez j'ai repris ton code, dépieutes le. Je te conseille fortement de séparer ta mise en page de tes données : déportes toute la mise en page dans un fichier .css tu y gagneras en lisibilité
    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
     
    include('conf.php');
    require('pages/fonctions_dates.php');
     
    $sql =
    '  SELECT *, DATE_FORMAT(date_du, "%Y%m%d") AS dateDu, DATE_FORMAT(date_au, "%Y%m%d") AS dateAu
       FROM tb_clients_sites
          INNER JOIN tb_consignes ON (tb_clients_sites.idclients_sites =  tb_consignes.clients_sites_id )
          INNER JOIN tb_types_consigne ON (tb_consignes.idtypeconsignes =  tb_types_consigne.idtypeconsignes)
       GROUP BY clients_sites
       ORDER BY clients_sites';
     
    $exec = mysql_query($sql, $cnx) or die(mysql_error());
     
    $data = array();
    $now  = date('Ymd') * 1;
     
    while($row = mysql_fetch_assoc($exec)) {
       if ($now < $row['dateDu']) {
          $row['statut'] = 'proch.png';
       }
       else
       if ($now > $row['dateAu']) {
          $row['statut'] = 'perim.png';
       }
       else {
          $row['statut'] = 'nouv.png';
       }
       $data[] = $row;
    }
     
    if (empty($data)): ?>
    <span>Pas de consignes en cours ...</span>
     
    <?php else: ?>
       <center>
          <table bgcolor="#FFFFFF" border="1" cellpadding="0" style="border-color:#999" width="800">
             <thead>
                <tr>
                   <th background="img/fdc.png" width="490" align="center"><b><u>CLIENT / SITE</u></b></th>
                   <th background="img/fdc.png" width="130" align="center"><b><u>DER.CONSIGNE</u></b></th>
                   <th background="img/fdc.png" width="67" align="center"><b><u>STATUT</u></b></th>
                   <th background="img/fdc.png" width="27" align="center"><b><u>LIRE</u></b></th>
                </tr>
             </thead>
             <tbody>
                <?php foreach($data as $row): ?>
                <tr>
                   <td bgcolor="#F9F9F9"><?php echo $row['clients_sites']; ?></td>
                   <td bgcolor="#F9F9F9"><center><?php echo dateFR($row['datej']); ?></center></td>
                   <td><center><img src="img/<?php echo $row['statut']; ?>"></center></td>
                   <td bgcolor="#F9F9F9"><center><a href="pages/consignes.php?id=<?php echo $row['idclients_sites']; ?>" title="Consigne Permanente pour <?php echo $row['clients_sites']; ?>" rel="gb_page_center[900, 700]"><img src="./img/c_perm.png"></a></center></td>
                </tr>
                <?php endforeach; ?>
             </tbody>
          </table>
       </center>
    <?php endif; ?>

  19. #19
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci à toi tu m’hallucine la, mon CSS est fait mais je n'ai pas encore fini, concernant le code cela fonctionne a 2/3 truc pret :
    - Mes consignes Permanente on des dates 0000/00/00 pour les deux champs mais la diode est verte.

    Dans tous les cas un tres grand merci a toi

    Edition: je sais pourquoi : J'ai enlevé la partie perim.gif car en faite celle ci n’était pas utile et cela fesais merdé le code apparement si je renome le perim.gif en proch.gif cela fonctionne de nouveau

    Edition 2:
    Ba non le 0000/00/00 des date me fait déconer le truc je vais regardé cela pour eclure cette date ou voir ne prendre en compte qu'a partir de la date du jour.

    Dans tous les cas un grand merci a toi

  20. #20
    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 tyler94 Voir le message
    Edition 2:
    Ba non le 0000/00/00 des date me fait déconer le truc je vais regardé cela pour eclure cette date ou voir ne prendre en compte qu'a partir de la date du jour.
    Non, n'exclues rien, tu dois trouver pourquoi tu obtiens un 0000/00/00. Vérifies ta base de données et revérifie encore et encore le code php.
    Testes ton sql en dehors du php, assures-toi que des données valides sont bien renvoyées.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. Affichage d'une image différemment selon les navigateurs
    Par CaNiBaLe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2012, 14h55
  2. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  3. affichage d'une image selon table sql
    Par math8811 dans le forum Langage
    Réponses: 9
    Dernier message: 27/11/2008, 11h53
  4. Affichage d'une image que si un champ rempli
    Par divail dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/09/2006, 15h55
  5. [PB 10] Affichage d'une image dans un champ calculé
    Par kheops92 dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 07/07/2006, 11h51

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