Bonjour,

Je suis en terminale STG GSI, et nous devons faire un projet pour l'oral du bac.
Dans mon projet, je suis censé faire un site internet relié a une base de données pour une association mettant en commun des personnes louant des gites et ceux qui en recherche.

Mon projet est quasiment terminé, mais j'ai un problème concernant une partie de mon code PHP.

Je dois donc afficher les gites disponibles avec toutes leurs informations par villages (tout est dans la BDD) et je dois afficher cela dans des tableaux.

Voila la requête que l'on m'a donné:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT GITE.RueGite, GITE.NbPlaces, GITE.NbChambres, GITE.Surface, PROPRIO.*, GROUP_CONCAT(SAISON.LibSaison) AS LibSaison, UNITE.LibUnite, GROUP_CONCAT(COUTER.Prix) AS Prix, GROUP_CONCAT(COUTER.CdUnite) AS CdUnite, GROUP_CONCAT(COUTER.CdSaison) AS CdSaison
FROM GITE
JOIN PROPRIO ON PROPRIO.CdProprio = GITE.CdProprio
JOIN COUTER ON GITE.NoGite = COUTER.NoGite
JOIN UNITE ON UNITE.CdUnite = COUTER.CdUnite
JOIN SAISON ON COUTER.CdSaison = SAISON.CdSaison
WHERE VilleGite = "Tuchan"
GROUP BY GITE.NoGite
Cette requête marche parfaitement, mais je dois également afficher les réservations de chaque gite, je pensais rajouter les liens vers la Table RESERVATION, et faire des GROUP_CONCAT comme pour les prix mais cela ne marche pas ...

Voila le code PHP qui me permet d'afficher cette requete :

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
$requete_gite_tuchan="SELECT GITE.*, PROPRIO.*, GROUP_CONCAT(SAISON.LibSaison) AS LibSaison, GROUP_CONCAT(UNITE.LibUnite) AS LibUnite, GROUP_CONCAT(COUTER.Prix) AS Prix, GROUP_CONCAT(COUTER.CdUnite) AS CdUnite, GROUP_CONCAT(COUTER.CdSaison) AS CdSaison
					FROM GITE, PROPRIO, COUTER, UNITE, SAISON
					WHERE PROPRIO.CdProprio = GITE.CdProprio AND GITE.NoGite = COUTER.NoGite AND UNITE.CdUnite = COUTER.CdUnite AND COUTER.CdSaison = SAISON.CdSaison AND GITE.VilleGite = 'Tuchan' GROUP BY GITE.NoGite";
					$resultat_gite_tuchan=mysql_query($requete_gite_tuchan);
<?php
				  	while($gite_tuchan=mysql_fetch_array($resultat_gite_tuchan))
	{ 
		echo "<p>Description du Gite</p><table><tr><th> Numero du gite </th><th> Adresse du gite </th><th> Nombre de chambres </th><th> Nombre de places </th><th> Surface </th><th> Jardin </th></tr><tr><td>".$gite_tuchan['NoGite']."</td>";
 		echo "<td>".$gite_tuchan['RueGite']."</td>";
		echo "<td>".$gite_tuchan['NbPlaces']."</td>";
	        echo "<td>".$gite_tuchan['NbChambres']."</td>";
		echo "<td>".$gite_tuchan['Surface']."m<sup>2</sup></td>"; 
		echo "<td>".$gite_tuchan['Jardin']."</td></tr></table>";
 
		echo "<p>Proprietaire du Gite</p><table> <tr><th> Nom </th><th> Rue </th><th> CP </th><th> Ville </th><th> Telephone </th><th> Mel </th></tr> <tr><td>".$gite_tuchan['NomProprio']."</td>";
		echo "<td>".$gite_tuchan['RueProprio']."</td>";
		echo "<td>".$gite_tuchan['CPProprio']."</td>";
		echo "<td>".$gite_tuchan['VilleProprio']."</td>";
		echo "<td>".$gite_tuchan['TelProprio']."</td>";
		echo "<td>".$gite_tuchan['MelProprio']."</td></tr></table>";
 
		echo "<p>Prix du Gite</p><table><tr><th>Saison</th><th>Unité</th><th>Prix</th></tr><tr>";	
		echo "<td>".$gite_tuchan['LibSaison']."</td>";
		echo "<td>".$gite_tuchan['LibUnite']."</td>";	
		echo "<td>".$prix_gite_tuchan." €</td></tr></table><br /><hr />";
}
?>

Voila ma table :

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
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
-- 
-- Structure de la table 'COUTER'
-- 
 
CREATE TABLE 'COUTER' (
  'NoGite' smallint(6) NOT NULL,
  'CdSaison' varchar(1) NOT NULL,
  'CdUnite' varchar(1) NOT NULL,
  'Prix' decimal(19,2) default NULL,
  PRIMARY KEY  ('NoGite','CdSaison','CdUnite'),
  KEY 'CdSaison' ('CdSaison'),
  KEY 'CdUnite' ('CdUnite')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- 
-- Contenu de la table 'COUTER'
-- 
 
INSERT INTO 'COUTER' VALUES (1, '1', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (1, '2', 'S', '350.00');
INSERT INTO 'COUTER' VALUES (1, '3', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (1, '4', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (2, '1', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (2, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (2, '3', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (3, '1', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (3, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (4, '1', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (4, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (5, '1', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (5, '2', 'S', '400.00');
INSERT INTO 'COUTER' VALUES (6, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (7, '2', 'S', '320.00');
INSERT INTO 'COUTER' VALUES (8, '1', 'S', '220.00');
INSERT INTO 'COUTER' VALUES (8, '2', 'S', '350.00');
INSERT INTO 'COUTER' VALUES (9, '1', 'S', '200.00');
INSERT INTO 'COUTER' VALUES (9, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (10, '1', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (10, '2', 'S', '350.00');
INSERT INTO 'COUTER' VALUES (10, '3', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (11, '1', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (11, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (12, '2', 'S', '300.00');
INSERT INTO 'COUTER' VALUES (13, '1', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (13, '1', 'W', '100.00');
INSERT INTO 'COUTER' VALUES (13, '2', 'S', '350.00');
INSERT INTO 'COUTER' VALUES (13, '3', 'S', '250.00');
INSERT INTO 'COUTER' VALUES (13, '3', 'W', '100.00');
INSERT INTO 'COUTER' VALUES (14, '2', 'S', '400.00');
INSERT INTO 'COUTER' VALUES (15, '2', 'S', '330.00');
INSERT INTO 'COUTER' VALUES (15, '3', 'S', '270.00');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table 'GITE'
-- 
 
CREATE TABLE 'GITE' (
  'NoGite' smallint(6) NOT NULL,
  'RueGite' varchar(50) default NULL,
  'CPGite' varchar(5) default NULL,
  'VilleGite' varchar(30) default NULL,
  'NbPlaces' smallint(6) default NULL,
  'NbChambres' smallint(6) default NULL,
  'Surface' smallint(6) default NULL,
  'Jardin' varchar(3) default NULL,
  'CdProprio' varchar(8) default NULL,
  PRIMARY KEY  ('NoGite'),
  KEY 'CdProprio' ('CdProprio')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- 
-- Contenu de la table 'GITE'
-- 
 
INSERT INTO 'GITE' VALUES (1, '15 chemin du Torgan', '11350', 'Padern', 5, 2, 90, 'Oui', '012');
INSERT INTO 'GITE' VALUES (2, '7 rue du Confluent', '11350', 'Padern', 4, 2, 70, 'Oui', '009');
INSERT INTO 'GITE' VALUES (3, '8 passage des Jardins', '11350', 'Padern', 4, 2, 65, 'Oui', '008');
INSERT INTO 'GITE' VALUES (4, '4 rue du Verdouble', '11350', 'Padern', 4, 2, 60, 'Oui', '008');
INSERT INTO 'GITE' VALUES (5, '12 rue Sainte Cécile', '11350', 'Padern', 6, 3, 90, 'Oui', '010');
INSERT INTO 'GITE' VALUES (6, '10 route de Padern', '11350', 'Cucugnan', 4, 2, 60, 'Oui', '003');
INSERT INTO 'GITE' VALUES (7, '7 rue des Artisans', '11350', 'Tuchan', 5, 2, 70, 'Oui', '001');
INSERT INTO 'GITE' VALUES (8, '15 route de la Fontaine Vieille', '11350', 'Cucugnan', 5, 2, 75, 'Oui', '002');
INSERT INTO 'GITE' VALUES (9, '9 rue des Remparts', '11350', 'Cucugnan', 4, 2, 60, 'Oui', '011');
INSERT INTO 'GITE' VALUES (10, '11 rue de Saint Roch', '11350', 'Padern', 5, 2, 70, 'Oui', '004');
INSERT INTO 'GITE' VALUES (11, '18 rue du Pont', '11350', 'Tuchan', 5, 2, 75, 'Oui', '005');
INSERT INTO 'GITE' VALUES (12, '6 chemin de la pinède', '11350', 'Padern', 5, 2, 70, 'Oui', '007');
INSERT INTO 'GITE' VALUES (13, '8 rue du Château', '11350', 'Padern', 5, 2, 75, 'Oui', '013');
INSERT INTO 'GITE' VALUES (14, '44 rue San Bitou', '11350', 'Padern', 6, 3, 100, 'Oui', '006');
INSERT INTO 'GITE' VALUES (15, '24 rue du Moulin', '11350', 'Cucugnan', 5, 2, 75, 'Oui', '014');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table 'PROPRIO'
-- 
 
CREATE TABLE 'PROPRIO' (
  'CdProprio' varchar(8) NOT NULL,
  'NomProprio' varchar(30) default NULL,
  'RueProprio' varchar(50) default NULL,
  'CPProprio' varchar(5) default NULL,
  'VilleProprio' varchar(30) default NULL,
  'TelProprio' varchar(20) default NULL,
  'MelProprio' varchar(30) default NULL,
  'mot_de_passe' varchar(20) default NULL,
  PRIMARY KEY  ('CdProprio')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- 
-- Contenu de la table 'PROPRIO'
-- 
 
INSERT INTO 'PROPRIO' VALUES ('001', 'Asch', '7 rue des Artisans', '11350', 'Tuchan', '04 68 45 41 17', 'herbert.asch@wanadoo.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('002', 'Bertoumieux', '15 route de la Fontaine Vieille', '11350', 'Cucugnan', '04 68 45 03 47', 'bertoumieux@wanadoo.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('003', 'Caussade', '10 route de Padern', '11350', 'Cucugnan', '04 68 45 03 59', 'jean.caussade@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('004', 'Ivanov', '11 rue de Saint Roch', '11350', 'Padern', '04 68 45 41 52', 'todor.ivanov@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('005', 'Legrand', '18 rue du Pont', '11350', 'Tuchan', '04 68 45 41 24', 'albert.legrand@laposte.net', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('006', 'Mulcahy', '44 rue San Bitou', '11350', 'Padern', '04 68 45 41 72', 'seamus.mulcahy@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('007', 'Martinez', '14 chemin de Malpas', '11350', 'Cucugnan', '04 68 45 03 56', 'jean.martinez@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('008', 'Marty', '8 passage des Jardins', '11350', 'Padern', '04 68 45 41 44', 'gilles.marty@wanadoo.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('009', 'McTavish', '7 rue du Confluent', '11350', 'Padern', '04 68 45 40 74', 'mctavish@wanadoo.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('010', 'Pujol', '12 rue Sainte Cécile', '11350', 'Padern', '04 68 45 41 54', 'andre.pujol@laposte.net', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('011', 'Romero', '9 rue des Remparts', '11350', 'Cucugnan', '04 68 45 03 25', 'gilles.romero@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('012', 'Richardson', '15 chemin du Torgan', '11350', 'Padern', '04 68 45 41 18', 'richardson@free.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('013', 'Sol', '8 rue du Château', '11350', 'Padern', '04 68 45 41 66', 'jean.sol@wanadoo.fr', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('014', 'Vivies', '24 rue du Moulin', '11350', 'Cucugnan', '04 68 45 03 12', 'bernard.vivies@laposte.net', 'gdv');
INSERT INTO 'PROPRIO' VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test', 'test');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table 'RESERVATION'
-- 
 
CREATE TABLE 'RESERVATION' (
  'NoRes' int(11) NOT NULL auto_increment,
  'DateResDeb' date default NULL,
  'DateResFin' date default NULL,
  'NoGite' smallint(6) default NULL,
  PRIMARY KEY  ('NoRes'),
  KEY 'NoGite' ('NoGite')
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;
 
-- 
-- Contenu de la table 'RESERVATION'
-- 
 
INSERT INTO 'RESERVATION' VALUES (1, '2008-06-02', '2008-06-16', 1);
INSERT INTO 'RESERVATION' VALUES (2, '2008-06-02', '2008-06-09', 2);
INSERT INTO 'RESERVATION' VALUES (3, '2008-06-02', '2008-06-16', 3);
INSERT INTO 'RESERVATION' VALUES (4, '2008-06-02', '2008-06-09', 6);
INSERT INTO 'RESERVATION' VALUES (5, '2008-06-02', '2008-06-09', 7);
INSERT INTO 'RESERVATION' VALUES (6, '2008-06-02', '2008-06-16', 8);
INSERT INTO 'RESERVATION' VALUES (7, '2008-06-02', '2008-06-09', 9);
INSERT INTO 'RESERVATION' VALUES (8, '2008-06-02', '2008-06-09', 10);
INSERT INTO 'RESERVATION' VALUES (9, '2008-06-02', '2008-06-09', 14);
INSERT INTO 'RESERVATION' VALUES (10, '2008-06-02', '2008-06-09', 15);
INSERT INTO 'RESERVATION' VALUES (11, '2008-06-09', '2008-06-16', 2);
INSERT INTO 'RESERVATION' VALUES (12, '2008-06-09', '2008-06-16', 7);
INSERT INTO 'RESERVATION' VALUES (13, '2008-06-09', '2008-06-16', 9);
INSERT INTO 'RESERVATION' VALUES (14, '2008-06-09', '2008-06-16', 10);
INSERT INTO 'RESERVATION' VALUES (15, '2008-06-09', '2008-06-16', 13);
INSERT INTO 'RESERVATION' VALUES (16, '2008-06-09', '2008-06-16', 15);
INSERT INTO 'RESERVATION' VALUES (17, '2008-06-16', '2008-06-23', 1);
INSERT INTO 'RESERVATION' VALUES (18, '2008-06-16', '2008-06-30', 2);
INSERT INTO 'RESERVATION' VALUES (19, '2008-06-16', '2008-06-23', 6);
INSERT INTO 'RESERVATION' VALUES (20, '2008-06-16', '2008-06-23', 7);
INSERT INTO 'RESERVATION' VALUES (21, '2008-06-16', '2008-06-30', 9);
INSERT INTO 'RESERVATION' VALUES (22, '2008-06-16', '2008-06-30', 10);
INSERT INTO 'RESERVATION' VALUES (23, '2008-06-16', '2008-06-23', 13);
INSERT INTO 'RESERVATION' VALUES (24, '2008-06-16', '2008-06-23', 15);
INSERT INTO 'RESERVATION' VALUES (25, '2008-06-23', '2008-07-06', 1);
INSERT INTO 'RESERVATION' VALUES (26, '2008-06-23', '2008-07-06', 3);
INSERT INTO 'RESERVATION' VALUES (27, '2008-06-23', '2008-07-13', 7);
INSERT INTO 'RESERVATION' VALUES (28, '2008-06-23', '2008-07-06', 8);
INSERT INTO 'RESERVATION' VALUES (29, '2008-06-23', '2008-06-30', 14);
INSERT INTO 'RESERVATION' VALUES (30, '2008-06-23', '2008-06-30', 15);
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table 'SAISON'
-- 
 
CREATE TABLE 'SAISON' (
  'CdSaison' varchar(1) NOT NULL,
  'LibSaison' varchar(10) default NULL,
  PRIMARY KEY  ('CdSaison')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- 
-- Contenu de la table 'SAISON'
-- 
 
INSERT INTO 'SAISON' VALUES ('1', 'Printemps');
INSERT INTO 'SAISON' VALUES ('2', 'Eté');
INSERT INTO 'SAISON' VALUES ('3', 'Automne');
INSERT INTO 'SAISON' VALUES ('4', 'Hiver');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table 'UNITE'
-- 
 
CREATE TABLE 'UNITE' (
  'CdUnite' varchar(1) NOT NULL,
  'LibUnite' varchar(20) default NULL,
  PRIMARY KEY  ('CdUnite')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- 
-- Contenu de la table 'UNITE'
-- 
 
INSERT INTO 'UNITE' VALUES ('S', 'Par semaine');
INSERT INTO 'UNITE' VALUES ('W', 'Week-end');
 
-- 
-- Contraintes pour les tables exportées
-- 
 
-- 
-- Contraintes pour la table 'COUTER'
-- 
ALTER TABLE 'COUTER'
  ADD CONSTRAINT 'couter_ibfk_1' FOREIGN KEY ('NoGite') REFERENCES 'gite' ('NoGite') ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT 'couter_ibfk_2' FOREIGN KEY ('CdSaison') REFERENCES 'saison' ('CdSaison') ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT 'couter_ibfk_3' FOREIGN KEY ('CdUnite') REFERENCES 'unite' ('CdUnite') ON DELETE CASCADE ON UPDATE CASCADE;
 
-- 
-- Contraintes pour la table 'GITE'
-- 
ALTER TABLE 'GITE'
  ADD CONSTRAINT 'gite_ibfk_1' FOREIGN KEY ('CdProprio') REFERENCES 'proprio' ('CdProprio') ON DELETE CASCADE ON UPDATE CASCADE;
 
-- 
-- Contraintes pour la table 'RESERVATION'
-- 
ALTER TABLE 'RESERVATION'
  ADD CONSTRAINT 'reservation_ibfk_1' FOREIGN KEY ('NoGite') REFERENCES 'gite' ('NoGite') ON DELETE CASCADE ON UPDATE CASCADE;
J'ai également du mal a comprendre comment faire un explode sur les GROUP_CONCAT ...

Si quelqu'un a une idée, il ne me manque plus que cette petite chose pour finir mon projet pour mon oral

Si vous avez besoin d'autres informations n'hésitez pas

Bonne journée !