PB avec jpGraph
9 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
PB avec jpGraph
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
Mes valeurs sont donc, par exemple:
Or, ça ne marche pas, mais si je met directement la ligne
Ca marche
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: Tout sélectionner
$data[$x] = array($data[$x])
Mes valeurs sont donc, par exemple:
- Code: Tout sélectionner
$data[1] = array(10,5,7,3)
Or, ça ne marche pas, mais si je met directement la ligne
- Code: Tout sélectionner
$data[1] = array(10,5,7,3);
Ca marche
- Code: Tout sélectionner
<?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();
?>
Dernière édition par Grantome le Jeu Nov 18, 2004 19:03, édité 4 fois.
- e-passeport
- WRInaute occasionnel

- Messages: 144
- Inscription: Ven Juin 25, 2004 15:51
essau un echo des valeurs que t'envoi... tu verras ce qui pars.
- e-passeport
- WRInaute occasionnel

- Messages: 144
- Inscription: Ven Juin 25, 2004 15:51
alors met un echo dans ton fichier jpgraph à présent et regard ce qui arrive...
...
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.
Peux rien expliquer d'autre....
Là, y a tout
Voici les 2 possibilités:
Tel que le code, ça affiche:
Donnée sortie du boucle
3e datax = 0, 3, 6, 6, 8
data[1] = 0, 10, 10, 10, 10
data[2] = 0, 8, 5, 8, 3
data[3] = 0, 3, 6, 6, 8
Donnée après mise en array
data[1] = Array
data[2] = Array
data[3] = Array
JpGraph Error: A plot has an illegal scale. This could for example be that you are trying to use text autoscaling to draw a line plot with only one point or that the plot area is too small. Try increasing the graph size or correct the lineplot.
En décommantant les $data[] et en commentant les autres voici l'affichage:
Donnée sortie du boucle
3e datax = 0, 3, 6, 6, 8
data[1] = 0, 10, 10, 10, 10
data[2] = 0, 8, 5, 8, 3
data[3] = 0, 3, 6, 6, 8
Donnée après mise en array
data[1] = Array
data[2] = Array
data[3] = Array
JpGraph Error: A plot has an illegal scale. This could for example be that you are trying to use text autoscaling to draw a line plot with only one point or that the plot area is too small. Try increasing the graph size or correct the lineplot.
Si je retire toute la partie ou je vais chercher mes donnée, le graph s'affiche.
- Code: Tout sélectionner
<?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
$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.
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.
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;
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;
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Alternative à JPGraph
- pb jpgraph help SVP :)
- Jpgraph Error !
- jpgraph probleme
- Erreur avec JPGraph 1.7
- jpgraph et les histogrammes
- problème jpgraph et html
- JPgraph : problème d'exportation de l'image
- Jpgraph : y'a t-il des utilisateurs ?
- JPGRAPH - Problèmes de mise en place
- Graph dynamique : GD, JPGraph, Graphpite ou PostGraph ?
- comment cacher/supprimer axes avec jpgraph?
- [REGLE] Problème JPGRAPH : aucune image ne s'affiche
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum