bonsoir,

voici mon problème:

je souhaite afficher un graphique dont les valeurs seront choisies en fonction de dates (datedebut, datefin)

Bref dans la première frame j'ai posé 2 inputs pour recevoir les 2 dates et en fonction de ces 2 dates il doit m'afficher le graphique correspondant dans la 2eme frames du bas
Je vous joint le code des différentes pages

Sur mon site je clique sur le bouton graphique:
Page graphique.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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
   "http://www.w3.org/TR/REC-html40/frameset.dtd">
<HTML>
  <HEAD>
    <TITLE>Titre du document</TITLE>
  </HEAD>
 
  <FRAMESET rows="10%,*">
 
  <FRAME src=selectiondate.php >
  <FRAME src=mon_image.php >
 
  <NOFRAME>
    <BODY>
 
    </BODY>
  </NOFRAME>
 
  </FRAMESET>
 
</HTML>
Page selectiondate.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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Bienvenue sur le site de demande d'intervention</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<script type="text/javascript" src="verifcommentaire.js"> </script>
    </head>
    <body>
	<form action="mon_image.php" method="post" onSubmit = "var resultat = check_input(); return resultat;">
	<b>Date d&eacute;but</b>:
	<input type="text" name="datedebut" value=""/>
	<b>Date fin</b>:
	<input type="text" name="datefin" value=""/>
	<input class="h" type="submit" name="ok" value="Visualiser"/>
 
	</form>
	</body>
</html>
et voici le graphique (je n'ai pas encore intégré les dates dans les requêtes)
Code PHP : 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?php
session_start();
 
$db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Assistance'");
OCIExecute($stmt);
$assistance = 0;
while (OCIFetch($stmt)) {
	$assistance++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='MAJ-AV'");
OCIExecute($stmt);
$MAJAV = 0;
while (OCIFetch($stmt)) {
	$MAJAV++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Gestion des archives'");
OCIExecute($stmt);
$gestionarchive = 0;
while (OCIFetch($stmt)) {
	$gestionarchive++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Restauration de fichier'");
OCIExecute($stmt);
$restaurationfichier = 0;
while (OCIFetch($stmt)) {
	$restaurationfichier++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Droits Dacces'");
OCIExecute($stmt);
$droitacces = 0;
while (OCIFetch($stmt)) {
	$droitacces++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='PB/Installation PC'");
OCIExecute($stmt);
$pbpc = 0;
while (OCIFetch($stmt)) {
	$pbpc++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='PB/Installation Logiciel'");
OCIExecute($stmt);
$pblogiciel = 0;
while (OCIFetch($stmt)) {
	$pblogiciel++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='PB/Installation Imprimante'");
OCIExecute($stmt);
$pbimprimante = 0;
while (OCIFetch($stmt)) {
	$pbimprimante++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Reinitialisation PWD'");
OCIExecute($stmt);
$pwd = 0;
while (OCIFetch($stmt)) {
	$pwd++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Ouverture/Fermeture de Compte'");
OCIExecute($stmt);
$compte = 0;
while (OCIFetch($stmt)) {
	$compte++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Devis'");
OCIExecute($stmt);
$devis = 0;
while (OCIFetch($stmt)) {
	$devis++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='MINX'");
OCIExecute($stmt);
$minx = 0;
while (OCIFetch($stmt)) {
	$minx++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Messagerie'");
OCIExecute($stmt);
$messagerie = 0;
while (OCIFetch($stmt)) {
	$messagerie++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Reseau'");
OCIExecute($stmt);
$reseau = 0;
while (OCIFetch($stmt)) {
	$reseau++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Demande Perso'");
OCIExecute($stmt);
$perso = 0;
while (OCIFetch($stmt)) {
	$perso++;
	}
OCIFreeStatement($stmt);
 
$stmt = OCIParse($db_conn, "SELECT typeintervention FROM pti.archive WHERE typeintervention='Demande Divers'");
OCIExecute($stmt);
$divers = 0;
while (OCIFetch($stmt)) {
	$divers++;
	}
OCIFreeStatement($stmt);
 
$visite_par_mois[1]="$assistance";
$visite_par_mois[2]="$MAJAV";
$visite_par_mois[3]="$gestionarchive";
$visite_par_mois[4]="$restaurationfichier";;
$visite_par_mois[5]="$droitacces";
$visite_par_mois[6]="$pbpc";
$visite_par_mois[7]="$pblogiciel";
$visite_par_mois[8]="$pbimprimante";
$visite_par_mois[9]="$pwd";
$visite_par_mois[10]="$compte";
$visite_par_mois[11]="$devis";
$visite_par_mois[12]="$minx";
$visite_par_mois[13]="$messagerie";
$visite_par_mois[14]="$reseau";
$visite_par_mois[15]="$perso";
$visite_par_mois[16]="$divers";
 
// 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 = 950; 
$hauteur = 500; 
 
// 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, 75, 130, 195);
$bleu_clair = ImageColorAllocate ($im, 95, 160, 240);
 
 
// on dessine un trait horizontal pour représenter l'axe du temps     
ImageLine ($im, 20, $hauteur-40, $largeur-15, $hauteur-40, $noir); 
 
 
 
// on dessine un trait vertical pour représenter le nombre de pages vues 
ImageLine ($im, 20, 30, 20, $hauteur-40, $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, 14, 0, $largeur-70, $hauteur-10, $noir, "./fonts/verdana.ttf", "Type ");
imagettftext($im, 14, 0, 10, 20, $noir, "./fonts/verdana.ttf", "Nb. d'interventions");
imagettftext($im, 14, 0, $largeur-350, 20, $noir, "./fonts/verdana.ttf", "Statistiques pour l'année 2007");
imagettftext($im, 10, 0, $largeur-217, 50, $noir, "./fonts/verdana.ttf", "1 : Assistance");
imagettftext($im, 10, 0, $largeur-217, 65, $noir, "./fonts/verdana.ttf", "2 : MAJ-Antivirus");
imagettftext($im, 10, 0, $largeur-217, 80, $noir, "./fonts/verdana.ttf", "3 : Gestion Archive");
imagettftext($im, 10, 0, $largeur-217, 95, $noir, "./fonts/verdana.ttf", "4 : Restauration fichier");
imagettftext($im, 10, 0, $largeur-217, 110, $noir, "./fonts/verdana.ttf", "5 : Droit d'accès");
imagettftext($im, 10, 0, $largeur-217, 125, $noir, "./fonts/verdana.ttf", "6 : Problème PC");
imagettftext($im, 10, 0, $largeur-217, 140, $noir, "./fonts/verdana.ttf", "7 : Problème logiciel");
imagettftext($im, 10, 0, $largeur-217, 155, $noir, "./fonts/verdana.ttf", "8 : Problème Imprimante");
imagettftext($im, 10, 0, $largeur-217, 170, $noir, "./fonts/verdana.ttf", "9 : Mot de Passe");
imagettftext($im, 10, 0, $largeur-225, 185, $noir, "./fonts/verdana.ttf", "10 : Ouverture/fermeture compte");
imagettftext($im, 10, 0, $largeur-225, 200, $noir, "./fonts/verdana.ttf", "11 : Devis");
imagettftext($im, 10, 0, $largeur-225, 215, $noir, "./fonts/verdana.ttf", "12 : Minx");
imagettftext($im, 10, 0, $largeur-225, 230, $noir, "./fonts/verdana.ttf", "13 : Messagerie");
imagettftext($im, 10, 0, $largeur-225, 245, $noir, "./fonts/verdana.ttf", "14 : Réseau");
imagettftext($im, 10, 0, $largeur-225, 260, $noir, "./fonts/verdana.ttf", "15 : Perso");
imagettftext($im, 10, 0, $largeur-225, 275, $noir, "./fonts/verdana.ttf", "16 : Divers");
 
// on parcourt les douze mois de l'année
for ($mois=1; $mois <= 16; $mois++) {
    if ($visite_par_mois[$mois]!="0") {
        // on calcule la hauteur du baton
        $hauteurImageRectangle = ceil(((($visite_par_mois[$mois])*($hauteur-100))/$max_visite)); 
        if ($mois=="1") {
            // si le mois est janvier, on affiche notre premier baton
            // on affiche le premier baton noir
            ImageFilledRectangle ($im, 42, ($hauteur-40)-$hauteurImageRectangle, 42+14, $hauteur-41, $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, 44, ($hauteur-40)-$hauteurImageRectangle+2, 42+12, $hauteur-41-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, 48, ($hauteur-40)-$hauteurImageRectangle+2, 42+8, $hauteur-41-1, $bleu_clair); 
 
			imagettftext($im, 10, 0, ($mois)*42, ($hauteur-40)-$hauteurImageRectangle-5, $noir, "./fonts/verdana.ttf", "$visite_par_mois[$mois]");
        }
 
 
        else {    
            // si le mois est different de janvier, on affiche les autres batons
            ImageFilledRectangle ($im, ($mois)*42, ($hauteur-40)-$hauteurImageRectangle, ($mois)*42+14, $hauteur-41, $noir); 
            ImageFilledRectangle ($im, ($mois)*42+2, ($hauteur-40)-$hauteurImageRectangle+2, ($mois)*42+12, $hauteur-41-1, $bleu_fonce); 
            ImageFilledRectangle ($im, ($mois)*42+6, ($hauteur-40)-$hauteurImageRectangle+2, ($mois)*42+8, $hauteur-41-1, $bleu_clair); 
 
			imagettftext($im, 10, 0, ($mois)*42, ($hauteur-40)-$hauteurImageRectangle-5, $noir, "./fonts/verdana.ttf", "$visite_par_mois[$mois]");
        }
    }
}
 
// on affiche le numéro des 12 mois
for ($i=1; $i<=16; $i++) { 
    if ($i==1) {
        ImageString ($im, 2, 42, $hauteur-38, $i, $noir);
    }
    else {
        ImageString ($im, 2, ($i)*42, $hauteur-38, $i, $noir);
    }
}
 
 
 
// on dessine le tout
Imagepng ($im);
?>

Donc comment faire pour injecter les valeurs des dates de la frames 1 dans la 2? Le problème est que à priori je ne peux pas toucher le code du graphique. J'ai trouvé la méthode du graphique sur un tuto mais je ne la maitrise pas du tout....

Merci à vous