Code :
<?php $result = mysql_query("SELECT mois, visit FROM bcmlbe ORDER BY id DESC LIMIT 12" ); { $k++; $m++; $visite_par_mois[$k]=$row[1]; $moistxt[$m] = $row[0]; } /* modifs ici */ /* fin des modifs */ // on calcule le nombre de pages vues sur l'année $max_visite = max($visite_par_mois); // on spécifie le type d'image que l'on va créer, ici ce sera une image au format PNG header ("Content-type: image/png" ); // on définit la largeur et la hauteur de notre image $largeur = 490; $hauteur = 230; // on crée une ressource pour notre image qui aura comme largeur $largeur et $hauteur comme hauteur (on place également un or die si la création se passait mal afin d'avoir un petit message d'alerte) $im = @ImageCreate ($largeur, $hauteur) or die ("Erreur lors de la création de l'image" ); // on place tout d'abord la couleur blanche dans notre table des couleurs (je vous rappelle donc que le blanc sera notre couleur de fond pour cette image). $blanc = ImageColorAllocate ($im, 255, 255, 255); // on place aussi le noir dans notre palette, ainsi qu'un bleu foncé et un bleu clair $noir = ImageColorAllocate ($im, 0, 0, 0); $bleu_fonce = ImageColorAllocate ($im, 76, 0, 153); $bleu_clair = ImageColorAllocate ($im, 150, 100, 200); // on dessine un trait horizontal pour représenter l'axe du temps ImageLine ($im, 20, $hauteur-30, $largeur-15, $hauteur-30, $noir); // on affiche le numéro des 12 mois for ($i=1; $i<=12; $i++) { $monthnbr = substr($moistxt[$i], -2); $monthtxt = substr($moistxt[$i], 0, 3); $month = $monthtxt.' '.$monthnbr; if ($i==1) { ImageString($im, 2, 32, $hauteur-28, $monthtxt, $bleu_fonce); } else { ImageString($im, 2, ($i)*32, $hauteur-28, $monthtxt, $bleu_fonce); } } // on dessine un trait vertical pour représenter le nombre de pages vues ImageLine ($im, 20, 30, 20, $hauteur-30, $noir); // on affiche les legendes sur les deux axes ainsi que différents textes (note : pour que le script trouve la police verdana, vous devrez placer la police verdana dans un repertoire /fonts/) imagettftext($im, 10, 0, $largeur-70, $hauteur-10, $noir, "./fonts/ARIAL.TTF", "Mois" ); imagettftext($im, 10, 0, 10, 20, $noir, "./fonts/ARIAL.TTF", "Nombre de visites" ); imagettftext($im, 10, 0, $largeur-250, 20, $noir, "./fonts/ARIAL.TTF", "Statistiques des derniers mois..." ); imagettftext($im, 8, 0, 10, 50, $noir, "./fonts/ARIAL.TTF", "6000" ); imagettftext($im, 8, 0, 10, 105, $noir, "./fonts/ARIAL.TTF", "4000" ); imagettftext($im, 8, 0, 10, 160, $noir, "./fonts/ARIAL.TTF", "2000" ); // on parcourt les douze mois de l'année for ($mois=1; $mois <= 12; $mois++) { if ($visite_par_mois[$mois]!="0" ) { // on calcule la hauteur du baton $hauteurImageRectangle = ceil(((($visite_par_mois[$mois])* ($hauteur-50))/ $max_visite)); if ($mois=="1" ) { // si le mois est janvier, on affiche notre premier baton // on affiche le premier baton noir ImageFilledRectangle ($im, 32, $hauteur-$hauteurImageRectangle, 32+14, $hauteur-31, $noir); // on affiche le second baton, bleu foncé, qui sera un peu plus petit que le noir afin de recouvrir une partie du noir ImageFilledRectangle ($im, 34, $hauteur-$hauteurImageRectangle+2, 32+12, $hauteur-31-1, $bleu_fonce); // on affiche le dernier baton, bleu clair, qui sera un peu plus petit que le bleu foncé afin de recouvrir une partie du bleu foncé (on obtiendra ainsi un effet de dégradé) ImageFilledRectangle ($im, 38, $hauteur-$hauteurImageRectangle+2, 32+8, $hauteur-31-1, $bleu_clair); } else { // si le mois est different de janvier, on affiche les autres batons ImageFilledRectangle ($im, ($mois)*32, $hauteur-$hauteurImageRectangle, ($mois)*32+14, $hauteur-31, $noir); ImageFilledRectangle ($im, ($mois)*32+2, $hauteur-$hauteurImageRectangle+2, ($mois)*32+12, $hauteur-31-1, $bleu_fonce); ImageFilledRectangle ($im, ($mois)*32+6, $hauteur-$hauteurImageRectangle+2, ($mois)*32+8, $hauteur-31-1, $bleu_clair); } } } // on dessine le tout Imagepng ($im); ?>
|