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 :

Mise en forme d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut Mise en forme d'un tableau
    Bonjour à tous,


    Je récupère de ma base mysql des données sous cette forme:

    Montant|Désignation| mois

    545 tot-PUB VN 1 24,66
    1212 tot-PUB VN 2 14,77
    212 tot-PUB VN 3 121,69
    2 tot-PUB VN 4 151,48
    154 tot-PUB VN 5 220,94
    545 tot-PUB VN 6 219,32
    5451 tot-PUB VN 7 43,4
    154 tot-PUB VN 8 40,97
    154 tot-PUB VN 9 108,72
    112 tot-PUB VN 10 114,11


    Je voudrais afficher se résultat sur une page web sous la forme

    désignation Montant du mois 01| montant du mois 02|Montant du mois 03.....................


    Est-ce réalisable? si oui par ou commencer ?

    Merci d'avance pour vos explication

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu demandes dans ta requête SQL de classer les enregistrements par désignation et par mois en ajoutant une clause ORDER BY.

    Dans ton code php tu initialises une variable drapeau (flag), disons $currentDes, à false. Il ne reste plus qu'à boucler sur tes résultats. Quand $currentDes est différent de la désignation alors tu changes sa valeur avec la nouvelle désignation et tu l'affiches.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    D'accord,

    Ca ==> Tu demandes dans ta requête SQL de classer les enregistrements par désignation et par mois en ajoutant une clause ORDER BY. c'est deja fait.

    Je regarde ca pour la valeur a false


    Et comment je doit faire pour gerer dans le cas il y a un mois vide


    Exemple: il peut avoir au courant de l'année un mois de mars Vide donc cela me retourne pas de resultat (dans ma base j'ai 01 02 et je passe à 04) et cela de me décaler les mois

    guigui69

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Pour les mois vides c'est pas compliqué, n'affiche pas directement et stocke chaque année d'un même produit dans un tableau.

    À chaque changement de désignation tu créé un tableau de douze chaînes vides de 1 à 12:$annee = array_fill(1, 12, '');. À chaque passage dans la boucle le tableau va se remplir: $annee[$r['mois']] = $r['montant']; (avec $r qui est la ligne courante) et si arrivé à la désignation suivante il manque certains mois ce n'est pas grave car les douze items sont définis.

    Je pense à un truc 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
    $currentDes = false;
    $annee = false;
    $trPattern = '<tr>' . str_repeat('<td>%s</td>', 12) . '</tr>';
     
    while($r = mysqli_fetch_assoc($queryResult)) {
        if ($currentDes !== $r['Désignation']) {
            if ($annee)
                vprintf($trPattern, $annee);
     
            $currentDes = $r['Désignation'];
            $annee = array_fill(1, 12, '');
        }
     
        $annee[$r['mois']] = $r['montant'];
    }
     
    if ($annee)
        vprintf($trPattern, $annee);
    NB: On peut, pour avoir un code plus clair, séparer l'affichage de l'extraction des résultats en remplaçant vprintf($trPattern, $annee); par $results[$currentDes] = $annee; et en bouclant plus tard sur le tableau $results pour l'afficher.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci pour ce code de ma base je ressort aussi le montant du budget et la différence et le pourcentage

    Comment faire pour l’intégrer dans ton Tableau Array


    Je ressort de ma base c'est/ désignation mois/ montant/ budget / écart / pourcentage



    NB: On peut, pour avoir un code plus clair, séparer l'affichage de l'extraction des résultats en remplaçant vprintf($trPattern, $annee); par $results[$currentDes] = $annee; et en bouclant plus tard sur le tableau $results pour l'afficher.
    si je veux tester ceci : $results[$currentDes] = $annee comment faire pour affiche le résultat (sans mise en forme) le but est de voir les données à l'intérieur


    guigui69

Discussions similaires

  1. Changer la mise en forme d'un tableau et de son contenu ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/07/2007, 12h19
  2. [MS-Project] Mise en forme d'un tableau
    Par babemagus dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 06/06/2007, 15h56
  3. [XSLT]Mise en forme d'un tableau par categorie
    Par dibox dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/12/2006, 16h42
  4. [ struts-layout ]Mise en forme d'un tableau
    Par sandrinec dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/06/2006, 10h06

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