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 :

[Tableaux] Créer un camembert a partir d'un tableau


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut [Tableaux] Créer un camembert a partir d'un tableau
    bonjour . Je souhaiterais afficher un graphique sous forme de camembert a partir d'un tableau contenant toutes les informations qui m'intéressent.

    Voici le code qui me permet d'obtenir ce 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
    42
    43
    44
    45
    <html>
    <head>
    <title></title>
    </head><body>
    <pre>
    <?
    $tableau = file('/var/www/28-06-07.txt');
    $affichage=0;
     
    //Etape 1 ==>  Parcourir le fichier et remplissage du tableau ac que ce
    ki ns interesse
    $codeErreur=array();
    echo "1ere partie du stage ==> Remplissage du tableau\n\n";
    foreach($tableau as $ligne)
    {
            if($ligne=="Détail des transferts :\n")
            {
                    $affichage=1;
                    continue;
            }
            elseif(stristr($ligne,'Nombre de processus minimum occupés :'))
            {
                    $affichage=0;
            }
            elseif($ligne=="Statistiques depuis le démarrage de la
    passerelle :\n"   
                   or
    $ligne=="---------------------------------------------------\n")
            {
                    $affichage=0;
            }
            if($affichage==1)
            {
                    //echo "<br>$ligne";
                    list($cle,$tmp)=explode(": ",$ligne);
                    list($valeur)=explode(" (",$tmp);
                    $codeErreur["$cle"]=$valeur;
     
            }
    }
    print_r($codeErreur);
    echo "</pre>\n";
    ?>
    </body>
    </html>
    J'aurais donc voulu savoir si il été possible de pouvoir obtenir mon graphique en utilisant une méthode du même genre quel celle qui suit.

    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
     
    <?php
    // utilisation de la librairie graphique ARTICHOW
       // On vérifie que les données à afficher sur le graphique existent
       if(isset($_GET['montableau']) === FALSE) {
          exit;
       }
     
       // On récupère les valeurs à afficher sur le graphique dans
    $_GET['montableau'] et on les désérialize
       $data = @unserialize($_GET['montableau']);
     
       // On vérifie que les données passées en GET sont correctes
       if(is_array($data) === FALSE) {
          exit;
       }
     
       require_once "/cheminduserver/Artichow/Pie.class.php";
     
       // On créé le graphique et on y ajoute la courbe
       $graph = new Graph(400, 300);
       $graph->add($pie);
     
       // On affiche le graphique à l'écran
       $graph->draw();
    Voila si quelqu'un a une piste s'il vous plait.
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Pourquoi ? Artichow est très bien, non ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Bah c'est justement pour savoir si il a possibilité de procéder de la même manière mais en utilisant les valeurs contenu dans le tableau $codeErreur.
    Et si oui une piste pour le faire. Car j'ai essayé de plusieurs façons sans y arriver.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    S'il vous plaît. Quelqu'un serait t-il comment faire un graphique sous forme de camembert a partir d'un tableau en récupérant les données dynamiquement

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Comme on te l'a dit, tu peux utiliser la librairie Artichow
    Elle est compatible PHP4 et PHP5, est assez simple à utiliser et leur docs et les exemples sont assez complets.
    Exemple de camembert

    Pour le faire dynamiquement tu peux passer ton tableau d'un script à l'autre dans un formulaire en utilisant la fonction serialize().
    Dans le script créant le camembert, tu récupères ce tableau en faisaitn unserialize() et tu l'utilises pour créer le camembert.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    J'utilise donc les fonctions serialize() pour enregistrer mon tableau en utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $save =  serialize($mon_tableau);
    Puis sur mon autre page qui va créer le graphique j'ai la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $unserial = unserialize($_GET['save']);
    Mais lorsque je veux afficher afficher le contenu de $unserial donc grâce a
    rien n'est affiché a l'écran.
    J'aurais voulu savoir quelle est la commande pour permettre l'affichage.
    Car transmis comme tel la variable $unserial n'est pas compris correctement par le navigateur pour être affichée.

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Montre nous le code qui te permet de passer ton tableau d'un script à l'autre.
    Parce que tu le récupères dans $_GET['save'] donc à quel moment le places-tu dans $_GET justement?

    et si tu passes par GET il me semble que tu dois utiliser (en plus de serialize) la fonction urlencode()

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    dans mon premier script qui enregistre les données j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ma_variable = rawurlencode(serialize($mon_tableau));
    Puis j'envoie les données avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href='mon_autre_script.php?un_nom=$ma_variable'>Lien</a>";
    Ensuite sur mon autre page je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_GET['mon_tableau']."\n";
    Cela s'affiche bien mais toutes mes ' et " sont précédés d'un \.
    J'aurais voulu savoir pourquoi.

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par tiantian
    dans mon premier script qui enregistre les données j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ma_variable = rawurlencode(serialize($mon_tableau));
    Puis j'envoie les données avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href='mon_autre_script.php?un_nom=$ma_variable'>Lien</a>";
    Dans ce cas il faut récupérer le tableau dans $_GET['un_nom'] en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $montableau = unserialize(rawurldecode($_GET['un_nom']));
    Sinon pourrais-tu faire au début du script un simple
    Ca va afficher la totalité du contenu de $GET et tu verras s'il y a quelquechose dans la variable correspondant au tableau

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Cela affiche bien le contenu de mon tableau.
    Mais pourquoi tous les ' et " sont précédés d'un \ ??

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    a cause du urlencode justement, d'ou l'interet d'utiliser unserialize(rawurldecode($_GET['un_nom']));

    Est-ce que ca fonctionne ou pas?
    Si non tu peux essayer stripslashes() a la place de rawurldecode() ca retirera tous les \ en trop.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    J'ai changé ma ligne par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mon_tableau = unserialize(stripslashes($_GET['un_nom']));
    Et ca marche. Merci.
    Par contre serait tu me dire pourquoi des anti slash sont mis automatiquement. Encore merci.

  13. #13
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Comme expliqué juste au dessus c'est pour le passage dans l'url.
    Lorsque tu fais appel à rawurlencode() cette fonction se charge de modifier ta chaine de caractères en remplacant les caractères spéciaux dont les ' et les " pour passer correctement dans une url.
    Ensuite il faut donc retirer ces caractères d'échappement avant de réutiliser le tableau normalement.
    Penses au tag résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Créer un TCD Excel à partir d'un tableau contenant des combobox
    Par facteur dans le forum Excel
    Réponses: 5
    Dernier message: 30/01/2015, 16h49
  2. Réponses: 1
    Dernier message: 03/07/2012, 07h05
  3. [XL-2007] Créer un fichiers .ics à partir d'un tableau excel adapté pour outlook
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/03/2012, 19h14
  4. [Tableaux] Calcul d'une moyenne à partir d'un tableau
    Par Mordanus dans le forum Langage
    Réponses: 13
    Dernier message: 09/05/2007, 18h03
  5. Réponses: 6
    Dernier message: 01/05/2007, 23h16

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