Probleme dans mon projet

roroo888 -  
 roroo888 -
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 ma table :

-- 
-- 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;


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

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 :

$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 />";
}
?>


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 !

A voir également:

1 réponse

roroo888
 
Personne ?
0