Histogramme php mysql

agnes05 Messages postés 9 Date d'inscription mardi 7 juillet 2009 Statut Membre Dernière intervention 5 août 2009 - 21 juil. 2009 à 18:37
22693552 Messages postés 2 Date d'inscription samedi 7 janvier 2012 Statut Membre Dernière intervention 7 janvier 2012 - 7 janv. 2012 à 17:06
je veux construire un histogramme a partir des donnees stockees dans ma base de donnee. je dois les extraire et en faire des calculs pr ensuite creer mon graphique mais je ne sais pas comment m'y prendre... le php est tout nouveau pr moi et je suis perdu...
si quelqu'un peut venir a mon secour se serait sympa..

3 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
23 juil. 2009 à 15:25
Bonjour,

Regardes JpGraph.
Cette bibliothèque existe sous 2 licences, une libre et la seconde pro.
Elle inclut des exemples de codes pour pas mal de types de graphes.
0
22693552 Messages postés 2 Date d'inscription samedi 7 janvier 2012 Statut Membre Dernière intervention 7 janvier 2012
7 janv. 2012 à 17:04
<?php
// Connexion a la base de donnees

include('../connex.inc.php');

$idcom = connex('XXXX', 'myparam');

$sql1 = "SELECT * ".

"FROM t_categorie_cat";

$sql_categorie = mysql_query($sql1) or die(mysql_error());

$aCats = array();

/**

* On va stocker le résultat dans un tableau à partir duquel on travaillera plus loin.

*/
while(false !($c mysql_fetch_assoc($sql_categorie)))
{
$aCats[] = $c;
}
// $nblignes = mysql_num_rows($sql_categorie);
$nblignes = count($aCats);
/**
* Affichage de débogage :
*/
echo("Catégories :\n");
var_dump($aCats);
echo("

\n");

$sql2 = "SELECT ".
" SUM(dtc_quantite) AS total,".
" dtc_led_categorie ".
"FROM v_stat_commande ".
"GROUP BY dtc_code_categorie";
$sql_stat = mysql_query($sql2) or die(mysql_error());
$aStats = array();
while(false !($s mysql_fetch_assoc($sql_stat)))
{
$aStats[] = $s;
}
$nbstats = count($aStats);
/**
* Affichage de débogage :
*/
echo("Données statistiques :\n");
var_dump($aStats);
echo("

\n");die();

// Création de l image avec dimensions donnees (largeur/hauteur)
$largeurImage = 400;
$hauteurImage = 400;
$im = ImageCreate ($largeurImage, $hauteurImage) or die ("Erreur lors de la création de l'image");
$couleur_fond = ImageColorAllocate ($im, 230, 230, 230);
$noir = ImageColorAllocate ($im, 0, 0, 0);
$vert = ImageColorAllocate ($im, 13, 151, 23);
$coul_legendes = ImageColorAllocate ($im, 11, 62, 43);
$blanc = ImageColorAllocate ($im, 255, 255, 255);

ImageLine($im, 30, $hauteurImage-30, $largeurImage-20, $hauteurImage-30, $noir);
$mois = 1;
//Premiere boucle While OK
// while(false !($donnees_stat mysql_fetch_array($sql_stat)))
foreach($aStats as $s => $stat)
{
imagettftext($im,10,90,$mois*40,$hauteurImage-30,$coul_legendes,"arial.ttf",$aStats[$s]['total']);
$mois=$mois+1;
}

ImageLine ($im, 30, 10, 30, $hauteurImage-30, $noir);
for ($g = 0; $g <= 100; $g += 10)
{
imagettftext($im,10,0,5,($hauteurImage-25)-($g*3),$coul_legendes,"arial.ttf",$g);
ImageLine($im, 25, ($hauteurImage-30)-($g*3), 30, ($hauteurImage-30)-($g*3), $noir);
}

//Seconde boucle While PAS OK
// while(false !($donnees_valeur mysql_fetch_array($sql_stat) or die(mysql_error())))
foreach($aStats as $s => $stat)
{
ImageFilledRectangle ($im, 40, $aStats[$s]['total'], 60, $hauteurImage-30, $vert);
}
/**
* header déplacé pour permettre un débogage en amont.
*/
header ("Content-type: image/png");
ImagePng ($im);
0
22693552 Messages postés 2 Date d'inscription samedi 7 janvier 2012 Statut Membre Dernière intervention 7 janvier 2012
7 janv. 2012 à 17:06
[^^happy17]
0
Rejoignez-nous