Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 07h03   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut Syntaxe non prise en compte (JPGAPH / PHP)

Bonjour,

Voilà j'ai un petit soucis sur le génération d'un graphique, celui-ci est généré en fonction de l'année émis par un formulaire.
Jusqu'à la page où le graphique est créer l'information de l'année est bien pris en compte. Mais aucun graphique.
Je pense qu'il y a une erreur dans la manière que j'ai codé, mal dans mon malheur je ne la vois pas.

Donc voici le code de la page en espérant que quelqu'un pourra m'aiguiller.
Merci d'avance.

Code :
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
 
 
<?php 
 
Include ('../Formulaire/Ressource/Jpgraph/src/jpgraph.php');
Include ('../Formulaire/Ressource/Jpgraph/src/jpgraph_bar.php');
 
$TT = array();
$Mois="";
$i = 0;
$Prix="";
$PrixJan=0;
$PrixFev=0;
$PrixMar=0;
$PrixAvr=0;
$PrixMai=0;
$PrixJuin=0;
$PrixJui=0;
$PrixAou=0;
$PrixSep=0;
$PrixOct=0;
$PrixNov=0;
$PrixDec=0;
$Mois1="";
$Janvier="";
$Fevrier="";
$Mars="";
$Avril="";
$Mai="";
$Juin="";
$Juillet="";
$Aout="";
$Septembre="";
$Octobre="";
$Novembre="";
$Decembre="";
 
if (isset($_GET['Y']))
{
$Annee = $_GET['Y'];
}
 
$Dater = $Annee"-12-01";
$Dater1 = $Annee"-01-01";
 
define('MYSQL_HOST', 'XXX.X.X.X');
define('MYSQL_USER', 'XXXXXXXXXXX');
define('MYSQL_PASS', 'XXXXXXXXX');
define('MYSQL_DATABASE', 'XXXXXXXXXX');
 
$sql = <<<EOF
SELECT Date_vente, Prix FROM Photo WHERE Vendu = 1 
EOF;
 
$mysql = @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');
 
$mysqlQuery = @mysql_query($sql, $mysql) or die('Pb de requête');
 
while ($data = mysql_fetch_array($mysqlQuery,  MYSQL_ASSOC))
 {
$datay1[$i]=$data['Date_vente'];
If ($datay1[$i] > $Dater1 & $datay1[$i] < $Dater){
$Un = strpos($datay1[$i],"-");
$Un = substr($datay1[$i],$Un+1);
$Deux = strpos($Un,"-");
$Deux = substr($Un,0,$Deux);
//$Prix=$data['Prix'];
Switch ($Deux)
{
	Case "01" : 
	$Jour=31;
	$Janvier = "Janvier";
	$PrixJan=$PrixJan + $data['Prix'];
  Break;
 
	Case "02" : 
	$Fevrier = "Fevrier";
	If (($Annee % 4) == 0 And ((($Annee % 100) <> 0 Or ($Annee % 400) ==0))) 
	 {
    $Jour = 29;
   }
  Else 
   {
    $Jour = 28;
   }
   $PrixFev = $PrixFev + $data['Prix'];
	Break;
 
	Case "03" : 
	$Mars = "Mars";
	$Jour=31;
	$PrixMar = $PrixMar + $data['Prix'];
	Break;
 
	Case "04" : 
	$Avril = "Avril";
	$Jour=30;
	$PrixAvr = $PrixAvr + $data['Prix'];
	Break;
 
	Case "05" : 
	$Mai = "Mai";
	$Jour=31;
	$PrixMai = $PrixMai + $data['Prix'];
	Break;
 
	Case "06" : 
	$Juin = "Juin";
	$Jour=30;
	$PrixJuin = $PrixJuin + $data['Prix'];
	Break;
 
	Case "07" : 
	$Juillet = "Juillet";
	$Jour=31;
	$PrixJui = $PrixJui + $data['Prix'];
	Break;
 
	Case "08" : 
	$Aout = "Aout";
	$Jour=31;
	$PrixAou = $PrixAou + $data['Prix'];
	Break;
 
	Case "09" : 
	$Septembre = "Septembre";
	$Jour=30;
	$PrixSep = $PrixSep + $data['Prix'];
	Break;
 
	Case "10" : 
	$Octobre = "Octobre";
	$Jour=31;
	$PrixOct = $PrixOct + $data['Prix'];
	Break;
 
	Case "11" : 
	$Novembre = "Novembre";
	$Jour=30;
	$PrixNov = $PrixNov + $data['Prix'];
	Break;
 
	Case "12" : 
	$Decembre = "Decembre";
	$Jour=31;
	$PrixDec = $PrixDec + $data['Prix'];
  Break;
}
 
$TT=array($PrixJan,$PrixFev,$PrixMar,$PrixAvr,$PrixMai,$PrixJuin,$PrixJui,$PrixAou,$PrixSep,$PrixOct,$PrixNov,$PrixDec);
$Per = array($Janvier,$Fevrier,$Mars,$Avril,$Mai,$Juin,$Juillet,$Aout,$Septembre,$Octobre,$Novembre,$Decembre); 
}}
 
// Construction du conteneur
// Spécification largeur et hauteur
$graph = new Graph(400,200);
 
// Réprésentation linéaire
$graph->SetScale("textlin");
 
// Ajouter une ombre au conteneur
$graph->SetShadow();
 
// Fixer les marges
$graph->img->SetMargin(40,40,40,40);
 
// Création du graphique histogramme
$bplot = new BarPlot($TT);
 
// Spécification des couleurs des barres
$bplot->SetFillColor(array('red', 'green', 'blue'));
// Une ombre pour chaque barre
$bplot->SetShadow();
 
// Afficher les valeurs pour chaque barre
$bplot->value->Show();
// Fixer l'aspect de la police
$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
// Modifier le rendu de chaque valeur
$bplot->value->SetFormat('%d ventes');
 
// Ajouter les barres au conteneur
$graph->Add($bplot);
 
 
// Le titre
$graph->title->Set("Représentation des ventes par mois de l'année");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
 
// Titre pour l'axe horizontal(axe x) et vertical (axe y)
$graph->xaxis->title->Set("Mois");
$graph->yaxis->title->Set("Euro");
 
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
 
// Légende pour l'axe horizontal
$graph->xaxis->SetTickLabels($Per);
 
// Afficher le graphique
$graph->Stroke();
 
?>
Merci d'avance.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 07h59   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 139
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 139
Points : 7 276
Points : 7 276
Bonjour,

1- Essaie de faire echo de toutes tes données pour vérifier s'il n'y a pas d'erreur avec d'utiliser jpgraph.
2- Vire les @ sur les fonctions mysql pendant la période de dev, ça te permet d'afficher les erreurs.
3- $datay1[$i], $i n'est jamais incrémenté, pourquoi utiliser un array() qui n'est même pas déclaré?

J'ai rédigé un tutoriel sans utiliser jpgraph si ça pourrait t'intéresser Création de graphes statistiques et géométriques avec PHP et la librairie GD.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 07h03   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut Compléments d'informations

Bonjour,

Suite à ta proposition andry.aime j'ai contrôlé les choses suivantes :

Citation:
1- Essaie de faire echo de toutes tes données pour vérifier s'il n'y a pas d'erreur avec d'utiliser jpgraph.
=> Sur l'ensemble des informations nécessaires à la génération du graphique toutes sont bien affichées.

Citation:
2- Vire les @ sur les fonctions mysql pendant la période de dev, ça te permet d'afficher les erreurs.
=> La suppression de @ n'apporte aucun changement.

Citation:
3- $datay1[$i], $i n'est jamais incrémenté, pourquoi utiliser un array() qui n'est même pas déclaré?
=> La suppression de $i n'apporte aucun changement.

Citation:
3- $datay1[$i], $i n'est jamais incrémenté, pourquoi utiliser un array() qui n'est même pas déclaré?
=> La suppression $i n'apporte rien, est effectivement celui-ci n'était pas incrémenté. La mise ne incrémentation n'a rien changé.

Nota :

Si je remplace $Annee par une année réel ( 2010, 2011, ...) la graphique est bien généré.

Code :
1
2
3
 
$Dater = $Annee."-12-01";
$Dater1 = $Annee."-01-01";
Voilà les dernières news, je continue à chercher.

Encore merci pour ton aide.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 07h00   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut Info complémentaires

Bonjour,

lors de la demande d'afficher la page Graph.php le message suivant apparait:
Citation:
"
Notice: Undefined variable: Annee in G:\04_Personnel\EasyPHP-5.3.3\home\Developpement\Mdame\Formulaire\Graph.php on line 41

Notice: Undefined variable: Annee in G:\04_Personnel\EasyPHP-5.3.3\home\Developpement\Mdame\Formulaire\Graph.php on line 42
JpGraph Error: 25121 Empty input data array specified for plot. Must have at least one data point.

"
Il semblerai que la variable $Annee ne prend pas la valeur rechercher dans le $_Get.

Work in progress....
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 07h40   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut La réponse

Re bonjour,

Ba voila le solution ( un peu "con"), mais ca fonctionne.

Dans le lien "img" générant le graph je n'avais pas mis Y=$Annee.

Code :
<img src=\"Graph.php?Y=$Annee\" alt=\"Graphique JPGraph\">
Et là nickel.

Encore merci a ceux qui mon répondu.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h44.


 
 
 
 
Partenaires

Hébergement Web