PHP/SQL/Graphique GD

Fermé
the_jb Messages postés 651 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 mai 2016 - 14 juin 2012 à 11:29
the_jb Messages postés 651 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 mai 2016 - 15 juin 2012 à 09:18
Bonjour, J'ai récupéré un code pour créer une image dynamique(un graphique)
Sauf que je me creuse la tête pour insérer des données de ma BDD car l'exemple récupéré sur le site n'est pas exactement ce que je veux :

Je veux récupèrer le nombre d'interventions qui à été effectué sur chaque batiment. Je veux donc mettre en abscisse le num_batiment et en ordonnée le nb_intervention.

voila la requete exacte qui va me renvoyer les informations que je demande:

function getNbInterventions()
$sql="SELECT count( a.id_aff ) as nb_intervention, b.id_batiment, b.nom_batiment
FROM affaire a, batiment b
WHERE a.id_batiment = b.id_batiment
GROUP BY b.id_batiment
ORDER BY nb_intervention";
$rsql=mysql_query($sql);
while($ligne=mysql_fetch_assoc($rsql))
{ $tab[]=$ligne;
}
return $tab;
}

voila le code d'origine pour la création de l'image :

<?php
$visites = array(138, 254, 381, 652, 896, 720, 140, 556, 663, 331, 407, 768);

header ("Content-type: image/png");
$largeurImage = 400;
$hauteurImage = 300;
$im = ImageCreate ($largeurImage, $hauteurImage)
or die ("Erreur lors de la création de l'image");
$blanc = ImageColorAllocate ($im, 255, 255, 255);
$noir = ImageColorAllocate ($im, 0, 0, 0);
$bleu = ImageColorAllocate ($im, 0, 0, 255);

// on dessine un trait vertical pour représenter l'axe du temps
ImageLine ($im, 10, $hauteurImage-10, $largeurImage-10, $hauteurImage-10, $noir);
// on affiche le numéro des 12 mois
for ($mois=1; $mois<=12; $mois++) {
ImageString ($im, 0, $mois*30, $hauteurImage-10, $mois, $noir);
}

// on dessine un trait vertical pour représenter le nombre de visites
ImageLine ($im, 10, 10, 10, $hauteurImage-10, $noir);
// le nombre maximum de visites
$visitesMax = 1000;

// tracé des batons
for ($mois=1; $mois<=12; $mois++) {
$hauteurImageRectangle = round(($visites[$mois-1]*$hauteurImage)/$visitesMax);
ImageFilledRectangle ($im, $mois*30-7, $hauteurImage-$hauteurImageRectangle, $mois*30+7, $hauteurImage-10, $bleu);
ImageString ($im, 0, $mois*30-7, $hauteurImage-$hauteurImageRectangle-10, $visites[$mois-1], $noir);
}

// et c'est fini...
ImagePng ($im);
?>

Quel modification apporter afin d'arrivé au résultat que je veux ?


NB: Si vous voulez tester le graphique, créer une page html simple et insérer <img src='fichier.php'/>

Merci à vous !

1 réponse

the_jb Messages postés 651 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 9 mai 2016 58
Modifié par the_jb le 15/06/2012 à 09:18
AUTO Résolu
0