PB avec jpGraph

Discussion dans 'Administration d'un site Web' créé par Grantome, 18 Novembre 2004.

  1. Grantome
    Grantome WRInaute passionné
    Inscrit:
    16 Janvier 2004
    Messages:
    2 243
    J'aime reçus:
    0
    Re salut,

    Pourquoi cela ne fonctionne t-il pas ?

    Explication.
    Je vais chercher des données dans ma base
    Donnée, que je place dans la variable $data[$x], à savoir, par exemple 10,5,7,3
    Puis, je place ces valeurs dans un tableau comme suit
    Code:
    $data[$x] = array($data[$x])
    Mes valeurs sont donc, par exemple:
    Code:
    $data[1] = array(10,5,7,3)
    Or, ça ne marche pas, mais si je met directement la ligne
    Code:
    $data[1] = array(10,5,7,3);
    Ca marche :shock:

    Code:
    <?php 
    include ("../admin/data/config.php");
    $db = mysql_connect($serveur, $login, $pass); 
    mysql_select_db($base,$db);
    
    $tab = explode("_",$table);
    $date = $tab[1];
    $table2 = "stat_".$date;
    $i = 0;
    $u = 0;
    $x = 0;
    $tab2 = "";
    $champs = "points";
    $sql = "SELECT gp FROM $table2 ORDER BY id"; 
    $res = mysql_query($sql); 
    while($aff = mysql_fetch_array($res))
    	{
    		$i = $i +1;
    		$champs = $champs.", ".$aff[gp];
    		$tab2[$i] = $aff[gp];
    	}
    $i = $i +1;
    $sql = "SELECT $champs FROM $table ORDER BY points DESC LIMIT 0," . 3; 
    $res = mysql_query($sql); 
    while($aff1 = mysql_fetch_array($res))
    	{
    		$x = $x +1;
    		$datax = "0";
    		for ($u=1; $u<$i; $u++)
    			{
    				$gpx = $tab2[$u];
    				$datax = $datax.", ".$aff1[$gpx];
    			}
    		$data[$x] = $datax;
    		$u = 0;
    	}
    echo "Donnée sortie du boucle<br><br>";
    echo "3e datax = $datax<br><br>";
    echo "data[1] = $data[1]<br>";
    echo "data[2] = $data[2]<br>";
    echo "data[3] = $data[3]<br>";
    
    
    $data[1] = array($data[1]);
    $data[2] = array($data[2]);
    $data[3] = array($data[3]); 
    
    //$data[1] = array(0, 10, 10, 10, 10);
    //$data[2] = array(0, 8, 5, 8, 3);
    //$data[3] = array(0, 3, 6, 6, 8); 
    
    echo "Donnée après mise en array<br><br>";
    echo "data[1] = $data[1]<br>";
    echo "data[2] = $data[2]<br>";
    echo "data[3] = $data[3]<br>";
    
    include ("../src/jpgraph.php");
    include ("../src/jpgraph_line.php");
    
    $graph = new graph(500, 200); 
    $graph->img->SetMargin(30, 30, 30, 30);     
    $graph->SetScale('textlin'); 
    $line1 = new LinePlot($data[1]); 
    $line1->SetColor('darkolivegreen'); 
    $line2 = new LinePlot($data[2]); 
    $line2->SetColor('blue'); 
    $line3 = new LinePlot($data[3]); 
    $line3->SetColor('silver'); 
    $graph->Add($line1); 
    $graph->Add($line2); 
    $graph->Add($line3); 
    $graph->Stroke();
     
    
    ?>
    
     
  2. e-passeport
    e-passeport WRInaute discret
    Inscrit:
    25 Juin 2004
    Messages:
    127
    J'aime reçus:
    0
    essau un echo des valeurs que t'envoi... tu verras ce qui pars.
     
  3. Grantome
    Grantome WRInaute passionné
    Inscrit:
    16 Janvier 2004
    Messages:
    2 243
    J'aime reçus:
    0
    Si tu veux, mais ça n'apporte rien.

    $datax pour la boucle 1 = 0,8,5,8,3 (par exemple)
    puis $data[1] = 0,8,5,8,3
     
  4. e-passeport
    e-passeport WRInaute discret
    Inscrit:
    25 Juin 2004
    Messages:
    127
    J'aime reçus:
    0
    alors met un echo dans ton fichier jpgraph à présent et regard ce qui arrive...
     
  5. Grantome
    Grantome WRInaute passionné
    Inscrit:
    16 Janvier 2004
    Messages:
    2 243
    J'aime reçus:
    0
    ...

    Bon, j'ai mis le tout dernier code en haut...


    Voici les 2 possibilités:

    Tel que le code, ça affiche:

    En décommantant les $data[] et en commentant les autres voici l'affichage:

    Si je retire toute la partie ou je vais chercher mes donnée, le graph s'affiche.
    Code:
    <?php
    
    $data[1] = array(0, 10, 10, 10, 10);
    $data[2] = array(0, 8, 5, 8, 3);
    $data[3] = array(0, 3, 6, 6, 8); 
    
    
    include ("../src/jpgraph.php");
    include ("../src/jpgraph_line.php");
    
    $graph = new graph(500, 200); 
    $graph->img->SetMargin(30, 30, 30, 30);     
    $graph->SetScale('textlin'); 
    $line1 = new LinePlot($data[1]); 
    $line1->SetColor('darkolivegreen'); 
    $line2 = new LinePlot($data[2]); 
    $line2->SetColor('blue'); 
    $line3 = new LinePlot($data[3]); 
    $line3->SetColor('silver'); 
    $graph->Add($line1); 
    $graph->Add($line2); 
    $graph->Add($line3); 
    $graph->Stroke();
     
    ?>

    Peux rien expliquer d'autre....
    Là, y a tout :wink:
     
  6. tradjus
    tradjus WRInaute discret
    Inscrit:
    4 Avril 2004
    Messages:
    167
    J'aime reçus:
    0
    $data[$x] = array($data[$x])
    array($data[$x]) : C'est un array d'un array
    -> Soit un niveau array de trop (JPGraph attends probablement un simple array)

    Remplace tes echo avec print_r
    Example print_r($data[1]);
    Tu comprendras la différence ainsi.

    Chez PEAR ils ont un chouette image_graph. Essaie-le.
     
  7. tradjus
    tradjus WRInaute discret
    Inscrit:
    4 Avril 2004
    Messages:
    167
    J'aime reçus:
    0
    Je retire ce que j'ai dis. (je n'efface pas mon message précedent que le print_r aurait également mis le problème en évidence)
    Le probleme est :
    $data[1] = array($data[1]);
    $data[1] est un string!!! avec comme valeur "0, 10, 10, 10, 10"
    array($de_un_string) te crée un array avec un seul élement qui est le string en question.
    Et non comme tu espérais un array avec plusieurs élements, le premier étant 0, le deuxième 10, etc...

    Pourquoi ne fais-tu pas simplement :
    $x = $x +1;
    $data[$x]=array();
    $data[$x][] = 0;
    for ($u=1; $u<$i; $u++)
    {
    $gpx = $tab2[$u];
    $data[$x][] = intval($aff1[$gpx]);
    }
    $u = 0;
     
  8. Grantome
    Grantome WRInaute passionné
    Inscrit:
    16 Janvier 2004
    Messages:
    2 243
    J'aime reçus:
    0
    Pt1, j'y ai pensé presque en même temps de mon erreur de l'array avec un seul élément.

    Par contre, je ne connaissais pas "intval"...

    Ca marche impec.

    Bon, j'vais économiser, vu le fric que je te dois now.

    Merci. ;-)
     
  9. tradjus
    tradjus WRInaute discret
    Inscrit:
    4 Avril 2004
    Messages:
    167
    J'aime reçus:
    0
    A çà, j'espère que tu joues au loto et que tu as de la chance.
     
Chargement...
Similar Threads - jpGraph Forum Date
Graph dynamique : GD, JPGraph, Graphpite ou PostGraph ? Développement d'un site Web ou d'une appli mobile 2 Avril 2008
JPgraph : problème d'exportation de l'image Développement d'un site Web ou d'une appli mobile 13 Octobre 2006
Jpgraph : y'a t-il des utilisateurs ? Développement d'un site Web ou d'une appli mobile 20 Août 2006
JPGRAPH - Problèmes de mise en place Administration d'un site Web 24 Mai 2005
Alternative à JPGraph Administration d'un site Web 19 Mars 2005
jpgraph probleme Administration d'un site Web 20 Février 2004
problème jpgraph et html Administration d'un site Web 11 Mars 2003