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

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut Problème d'affichage de données d'une requête

    Bonjour,

    J'ai un petit soucis avec l'affichage d'un camembert de la lib JPGraph.
    En effet, le code ci dessous m'affiche un
    jpgraph error 15009, illegal pie plot, sum of all data is zero for pie plot
    Là où je ne comprends pas, c'est que lorsque je rentre les données manuellement, cela marche alors que dans les deux cas, il s'agit d'un tableau avec les mêmes données.
    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
    <?php 
    require_once ('jpgraph/src/jpgraph.php');
    require_once ('jpgraph/src/jpgraph_pie.php');
     
     
    	$req = 'SELECT mesdonnees FROM matable ';
    	$sql = mysql_query($req);	
    	$values = array();
     
    	//$donnees = array(1,5,8,9,7,7);
     
    	while ( $data = mysql_fetch_assoc($sql))
    	{
    		$values[] = $data['mesdonnees'];
    	}
    	/*echo '<pre>';
            print_r($donnees);
            echo '</pre>';
    	echo '<br />';
    	echo '<pre>';
            print_r($values);
            echo '</pre>';
    	*/
     
    	$largeur = 600;
    	$hauteur = 600;
     
    	// Initialisation du graphique
    	$graphe = new PieGraph($largeur, $hauteur);
     
    	// Creation du camembert
    	$camembert = new PiePlot($values); // avec $donnees cela marche
    	// Ajout du camembert au graphique
    	$graphe->add($camembert);
     
    	// Ajout du titre du graphique
    	$graphe->title->set("Titre du graphique");
     
    	// Affichage du graphique
    	$graphe->stroke();
     
    ?>
    Auriez vous un indice ?

  2. #2
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Bonjour.
    Commence par faire un print_r ou un var_dump de $values en ligne 16 pour vérifier les données fournies.

    Yves
    Participez vous aussi !
    Message utile
    Discussion résolue

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Voici le print_r de $values :
    Array
    (
    [0] => 8
    [1] => 9
    [2] => 7
    [3] => 3
    [4] => 3
    [5] => 4
    [6] => 9
    [7] => 45
    [8] => 7
    [9] => 12
    [10] => 16
    [11] => 6
    [12] => 2
    )

  4. #4
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Bizarre ...
    c'est peut-être un problème de typage.
    var_dump est plus précis que print_r car donne le type string ou autre.
    Tu peux essayer de forcer le typage en utilisant floatval
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $values[] = floaval($data['mesdonnees']);
    Participez vous aussi !
    Message utile
    Discussion résolue

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Avec un var_dump sur $donnees :
    array(6) {
    [0]=>
    int(1)
    [1]=>
    int(5)
    [2]=>
    int(8)
    [3]=>
    int(9)
    [4]=>
    int(7)
    [5]=>
    int(7)
    }
    et sur $values :
    array(13) {
    [0]=>
    string(1) "8"
    [1]=>
    string(1) "9"
    [2]=>
    string(1) "7"
    [3]=>
    string(1) "3"
    [4]=>
    string(1) "3"
    [5]=>
    string(1) "4"
    [6]=>
    string(1) "9"
    [7]=>
    string(2) "45"
    [8]=>
    string(1) "7"
    [9]=>
    string(2) "12"
    [10]=>
    string(2) "16"
    [11]=>
    string(1) "6"
    [12]=>
    string(1) "2"
    }
    Étrange, d'autant que dans la BDD le type de 'mesdonnees' est int.
    Et en forçant le typage avec floatval, même erreur.

  6. #6
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $values[] = 1*$data['mesdonnees'];
    Ça devrait forcer le type.
    Participez vous aussi !
    Message utile
    Discussion résolue

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Cela force le type mais toujours même erreur.
    Là, je ne comprends pas du tout et ça fait un moment que je suis dessus.

  8. #8
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    j'ai testé ton code et il fonctionne tout à fait bien sans besoin de caster ...
    J'ai fais une petite requête pour voir et ce code
    Code php : 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
    <?php
    require_once ('jpgraph/jpgraph.php');
    require_once ('jpgraph/jpgraph_pie.php');
    require_once("../include/Util.php");
    $connexion = Connexion (NOM,PASSEADMIN,BASE,SERVEUR);
    $req = "SELECT count( * ) AS nb, theme
    FROM data_01
    GROUP BY theme";
    $sql = mysql_query($req);	
    $values = array();
     
    $donnees = array(1,5,8,9,7,7);
     
    while ( $data = mysql_fetch_assoc($sql))
    {
    	$values[] = $data['nb'];
    }
    /*
    echo '<pre>';
    	var_dump($donnees);
    	echo '</pre>';
    echo '<br />';
    echo '<pre>';
    	var_dump($values);
    	echo '</pre>';
    */
     
    $largeur = 600;
    $hauteur = 600;
     
    // Initialisation du graphique
    $graphe = new PieGraph($largeur, $hauteur);
     
    // Creation du camembert
    // $camembert = new PiePlot($donnees);
    $camembert = new PiePlot($values); // avec $donnees cela marche
    // Ajout du camembert au graphique
    $graphe->add($camembert);
     
    // Ajout du titre du graphique
    $graphe->title->set("Titre du graphique");
     
    // Affichage du graphique
    $graphe->stroke();
     
    ?>
    donne le camembert suivant


    Avec $donnees et $values qui valent :
    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
    array (size=6)
      0 => int 1
      1 => int 5
      2 => int 8
      3 => int 9
      4 => int 7
      5 => int 7
     
     
    array (size=19)
      0 => string '5' (length=1)
      1 => string '1' (length=1)
      2 => string '4' (length=1)
      3 => string '1' (length=1)
      4 => string '1' (length=1)
      5 => string '13' (length=2)
      6 => string '3' (length=1)
      7 => string '1' (length=1)
      8 => string '6' (length=1)
      9 => string '3' (length=1)
      10 => string '1' (length=1)
      11 => string '1' (length=1)
      12 => string '4' (length=1)
      13 => string '1' (length=1)
      14 => string '2' (length=1)
      15 => string '31' (length=2)
      16 => string '2' (length=1)
      17 => string '2' (length=1)
      18 => string '7' (length=1)
    Images attachées Images attachées  
    Participez vous aussi !
    Message utile
    Discussion résolue

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    D'où vient l'erreur dans mon code alors ? Je ne saisis pas...

  10. #10
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Je te conseille de repartir de mon code et de le modifier
    Participez vous aussi !
    Message utile
    Discussion résolue

  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Peux-tu me donner data_01 ?

  12. #12
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Ça n'aurait aucun sens.
    Tu dois juste remplacer ma requête par la tienne
    En revanche, si tu postes ta requête, je pourrai en vérifier la syntaxe
    Participez vous aussi !
    Message utile
    Discussion résolue

  13. #13
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    C’était simplement pour connaitre la structure de ta table et donc pour remplacer avec mes équivalents, comme tu utilises un alias et que je ne connais pas très bien ce concept.

  14. #14
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Directeur centre IT
    Inscrit en
    janvier 2011
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur centre IT
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2011
    Messages : 463
    Points : 725
    Points
    725

    Par défaut

    Poste ta requête si tu veux que je la verifie ou y ajouter un alias
    Participez vous aussi !
    Message utile
    Discussion résolue

  15. #15
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    juin 2010
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : juin 2010
    Messages : 2 987
    Points : 6 475
    Points
    6 475

    Par défaut

    Citation Envoyé par thearno Voir le message
    […] comme tu utilises un alias et que je ne connais pas très bien ce concept.
    C'est vraiment pas compliqué, c'est juste un renommage.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count( * ) AS nb, theme
    FROM data_01
    GROUP BY theme

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $values[] = $data['nb'];

    S'il n'y avait pas l'alias, la donnée s'appellerait "count( * )" (à la casse et aux espaces près – vérifie le nom en faisant print_r($data)) et tu les récupèrerais en écrivant $data['count( * )'].
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  16. #16
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2014
    Messages : 10
    Points : 3
    Points
    3

    Par défaut

    Désolé, je suis un peu perdu...
    Comment modifier ma requête si je ne comprends pas quelle erreur elle contient ?

Discussions similaires

  1. Problème d'affichage des données d'une DataTable
    Par DarkSeiryu dans le forum Windows Forms
    Réponses: 12
    Dernier message: 18/03/2009, 17h01
  2. Réponses: 5
    Dernier message: 02/02/2009, 16h23
  3. Réponses: 3
    Dernier message: 11/10/2007, 12h18
  4. problème de récupération des données d'une requête
    Par maniaco_jazz dans le forum PHP & MySQL
    Réponses: 1
    Dernier message: 19/02/2007, 12h12
  5. Problème avec affichage des données d'une base MySQL
    Par leclone dans le forum PHP & MySQL
    Réponses: 6
    Dernier message: 27/12/2006, 12h40

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