Histogramme [Résolu]

soufiyan 9 Messages postés dimanche 2 mai 2010Date d'inscription 24 avril 2012 Dernière intervention - 18 avril 2012 à 15:55 - Dernière réponse : soufiyan 9 Messages postés dimanche 2 mai 2010Date d'inscription 24 avril 2012 Dernière intervention
- 24 avril 2012 à 09:13
bonjour j ai besoin d'aide
je n arrive pas a afficher la des données depuis ma base de données voila le code
sachant que je veux afficher le nombre des publications dans chaque année
c est urgent :(
<?php
include ("../jpgraph-1.27.1/src/jpgraph.php");
include ("../jpgraph-1.27.1/src/jpgraph_bar.php");
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'track_publications');
$tableauAnnees = array();
$tableauNombrepub = array();
// **********************************************
// Extraction des données dans la base de données
// *************************************************
$sql = <<<EOF
SELECT (
`year`
) AS ANNEE, COUNT( ID ) AS NBR_pub
FROM `publications`
GROUP BY year
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
$tableauAnnees[] = 'Année ' . $row['ANNEE'];
$tableauNombrepub[] = $row['NBR_pub'];
}
/*
printf('%s

', print_r($tableauAnnees,1));
printf('%s

', print_r($tableauNombrepub,1));
*/
// *******************
// Création du graphique
// *******************
// Construction du conteneur
// Spécification largeur et hauteur
$graph = new Graph(400,250);
// Réprésentation linéaire
$graph->SetScale("textlin");
// Ajouter une ombre au conteneur
$graph->SetShadow();
// Fixer les marges
$graph->img->SetMargin(40,30,25,40);
// Création du graphique histogramme
$bplot = new BarPlot($tableauNombrepub);
// Spécification des couleurs des barres
$bplot->SetFillColor(array('red', 'green', 'blue'));
// Une ombre pour chaque barre
$bplot->SetShadow();
// Afficher les valeurs pour chaque barre
$bplot->value->Show();
// Fixer l'aspect de la police
$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
// Modifier le rendu de chaque valeur
$bplot->value->SetFormat('%d ventes');
// Ajouter les barres au conteneur
$graph->Add($bplot);
// Le titre
$graph->title->Set("Graphique 'HISTOGRAMME' : pub par années");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
// Titre pour l'axe horizontal(axe x) et vertical (axe y)
$graph->xaxis->title->Set("Années");
$graph->yaxis->title->Set("Nombre de pub");
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
// Légende pour l'axe horizontal
$graph->xaxis->SetTickLabels($tableauAnnees);
// Afficher le graphique
$graph->Stroke();
?>
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
soufiyan 9 Messages postés dimanche 2 mai 2010Date d'inscription 24 avril 2012 Dernière intervention - 24 avril 2012 à 09:13
3
Merci
Voila un code qui marche enfin j ai résolu le probleme
<?php
include_once ("../jpgraph-1.27.1/src/jpgraph.php");
include_once ("../jpgraph-1.27.1/src/jpgraph_bar.php");
///database
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'track_publications');

//$tdata1y[] = array();
//$tdata2y[] = array();
// **********************************************
// Extraction des données dans la base de données
// *************************************************
$sql = <<<EOF
SELECT (
year
) AS ANNEE, COUNT( ID ) AS NBR_pub
FROM publications
GROUP BY year
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die(mysql_error());
while ($row = mysql_fetch_assoc($mysqlQuery)) {
$data1y[] = $row['ANNEE'];
$data2y[] = $row['NBR_pub'];

}
/*
while ($row = mysql_fetch_assoc($mysqlQuery)) {
$i = 0;  
$tdata1y[$i] = $row['ANNEE'];  
$tdata2y[$i] = $row['NBR_pub']; 
$i += 1;
}
*/

mysql_close($con);
//$data1y=array(12,8,19,3,10,5);
//$data2y=array(8,2,12,7,14,4);

// Create the graph. These two calls are always required
$graph = new Graph(310,200,'auto');
$graph->SetScale("textlin");
$graph->img->SetMargin(40,30,20,40);
$graph->SetShadow();







// Create the bar plots
$b1plot = new BarPlot($data1y);
$b1plot->SetFillColor("orange");
$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
"bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
$b1plot->SetCSIMTargets($targ,$alts);

$b2plot = new BarPlot($data2y);
$b2plot->SetFillColor("blue");
$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
"bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
$b2plot->SetCSIMTargets($targ,$alts);

// Create the grouped bar plot
$abplot = new AccBarPlot(array($b1plot,$b2plot));

$abplot->SetShadow();
$abplot->value->Show();

// ...and add it to the graPH
$graph->Add($abplot);

$graph->title->Set("Image map barex2");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);


// Send back the HTML page which will call this script again
// to retrieve the image.
$graph->StrokeCSIM();

?>

Merci soufiyan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de soufiyan
TheGorgo 224 Messages postés mercredi 23 mai 2007Date d'inscription 8 septembre 2014 Dernière intervention - 19 avril 2012 à 11:57
0
Merci
Salut,

Je capte pas trop le "EOF" dans ce morceau de code
$sql = <<<EOF 
SELECT ( 
`year` 
) AS ANNEE, COUNT( ID ) AS NBR_pub 
FROM `publications` 
GROUP BY year 
EOF; 

T'as essayé de le supprimer ?
$sql = "SELECT year AS ANNEE, COUNT(ID) AS NBR_pub FROM publications GROUP BY year";

Sinon un truc tout con mais hyper balaise c'est la fonction mysql_error(). Elle te dira exactement ce qui cloche dans ta requête.

@mysql_select_db(MYSQL_DATABASE) or die(mysql_error());
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die(mysql_error());

J'espère que ça pourra t'aider
Commenter la réponse de TheGorgo
soufiyan 9 Messages postés dimanche 2 mai 2010Date d'inscription 24 avril 2012 Dernière intervention - 19 avril 2012 à 12:31
0
Merci
Merci
mais la connexion marche
la requette aussi
je crois que probleme est dans le boucle while pour chargé
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
$tableauAnnees[] = 'Année ' . $row['ANNEE'];
$tableauNombrepub[] = $row['NBR_pub'];
} 
Commenter la réponse de soufiyan
TheGorgo 224 Messages postés mercredi 23 mai 2007Date d'inscription 8 septembre 2014 Dernière intervention - 19 avril 2012 à 13:00
0
Merci
Essaye
while ($row = mysql_fetch_assoc($mysqlQuery)) 
{
    $tableauAnnees[] = 'Année ' . $row['ANNEE'];
    $tableauNombrepub[] = $row['NBR_pub'];
} 
Commenter la réponse de TheGorgo
soufiyan 9 Messages postés dimanche 2 mai 2010Date d'inscription 24 avril 2012 Dernière intervention - 19 avril 2012 à 14:16
0
Merci
toujours le meme probleme je n arrive pas a afficher le graph
je crois que $tableauAnnees et $tableauNombrepub toujours vides ils a recuperent pas les données de $row['ANNEE'] et $row['NBR_pub']
Commenter la réponse de soufiyan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.