Bonjour,

Je suis débutant en programmation php,j'ai besoin de votre support:
Je suis entrain de créer mon premier site web.
Je veux tracer un histogramme sur lequel il s'affiche les valeurs stokées dans ma base de données. Ce pour cela j'ai utilisé jpgraph 3.5.0b.
J'a crée mon code php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
include ("jpgraph-3.5.0b1/src/jpgraph.php");
include ("jpgraph-3.5.0b1/src/jpgraph_line.php");
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', ' ');
define('MYSQL_PASS', ' ');
define('MYSQL_DATABASE', ' ');
$mois= date('M ');
$jour=date('d');
$tableau1 = array(); 
$tableau2 = array(); 
// *********************
// Production de données
// *********************
$sql="SELECT day as D   FROM application WHERE id_stat='Station1' and day between '01' and '$jour' order  by month ASC , day ASC,time ASC  ;";
$sql_ventes_par_mois =" SELECT bat_level,time   FROM application WHERE id_stat='Station1' AND day between '01' and '$jour' order  by month ASC , day ASC,time ASC;";
$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');
 
// Initialiser le tableau à 0 pour chaques mois ***********************
$mysqlQuery = @mysql_query($sql_ventes_par_mois, $mysqlCnx) or die('Pb de requête');
$mysqlQuery1 = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
 
while ($row1 = mysql_fetch_array($mysqlQuery,  MYSQL_ASSOC))  {
	$tableau1[] =$row1['bat_level'];
	}
	while ($row2 = mysql_fetch_array($mysqlQuery1,  MYSQL_ASSOC)){
    $tableau2[]=$row2['D'];
	}
 
// ***********************
// Création du graphique
// ***********************
 
// Création du conteneur
$graph = new Graph(400,200);
 
// Fixer les marges
$graph->img->SetMargin(50,40,50,40);    
 
// Mettre une image en fond
//$graph->SetBackgroundImage("fond.jpg",BGIMG_FILLFRAME);
 
// Lissage sur fond blanc (évite la pixellisation)
$graph->img->SetAntiAliasing("white");
 
// A détailler
$graph->SetScale("textlin");
// Ajouter une ombre
$graph->SetShadow();
 
// Ajouter le titre du graphique
$graph->title->Set("Graphical Curve Of Battery Level:%");
 
// Afficher la grille de l'axe des ordonnées
$graph->ygrid->Show();
// Fixer la couleur de l'axe (bleu avec transparence : @0.7)
$graph->ygrid->SetColor('blue@0.7');
// Des tirets pour les lignes
$graph->ygrid->SetLineStyle('dashed');
 
// Afficher la grille de l'axe des abscisses
$graph->xgrid->Show();
// Fixer la couleur de l'axe (rouge avec transparence : @0.7)
$graph->xgrid->SetColor('red@0.7');
// Des tirets pour les lignes
$graph->xgrid->SetLineStyle('dashed');
 
// Apparence de la police
$graph->title->SetFont(FF_ARIAL,FS_BOLD,11);
 
// Créer une courbes
$courbe = new LinePlot($tableau1);
 
// Afficher les valeurs pour chaque point
$courbe->value->Show();
 
// Valeurs: Apparence de la police
$courbe->value->SetFont(FF_ARIAL,FS_NORMAL,9);
$courbe->value->SetFormat('%d');
$courbe->value->SetColor("red");
 
// Chaque point de la courbe ****
// Type de point
$courbe->mark->SetType(MARK_FILLEDCIRCLE);
// Couleur de remplissage
$courbe->mark->SetFillColor("blue");
// Taille
$courbe->mark->SetWidth(2);
 
// Couleur de la courbe
$courbe->SetColor("blue");
$courbe->SetCenter();
 
// Paramétrage des axes
$graph->xaxis->title->Set("$mois");
//$graph->yaxis->title->Set("");
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetTickLabels($tableau2);
// Ajouter la courbe au conteneur
$graph->Add($courbe);
$graph->Stroke();
?>
Mon probléme est que j'ai plusieurs valeurs dans ma table de base de données durant toute une journée et dans l'axe d'abscisse je veux afficher le jour concernant que aprés le dernier affichage stokées dans la table,c'à'd come exemple pour le jour 13 juillet j'ai dans ma table de base de données plusieurs valeurs bat_level pour l'heure 03:24:54 j'ai 90% pour 04:04:09 j'ai 89% et ansi de suite.
Récapitulatif:
je veux dessiner mon histogramme d'un mois quelconque en affichant les valeurs stokées de chaque jour et pour chaque jour j'ai plusieurs valeurs dans des heurs quelconque


Remarque ces valeurs proviennent à partir d'un capteur(c'a'd ils sont dynamiques lorsque le capteur capte un valeur il le stoke dans la table de base de données,il les capte en heure quelconque)

Merci d'avance!!