Requete sql sur 3 tables liés
Posté : 18 janv. 2008, 12:55
Bonjour ,je viens de me lancer dans l'etude des tables liés afin d' "essayer de progresse"'.
J'utilise la sgbd mysql.
je viens de crer 3 tables qui sont les suivantes:
deja premier point de forme , ne ferais je pas mieux d'inverser les noms des colonnes quand je reutilise l'identifiant qui proveint du autre table ce qui me donnerait dans le cas de ma derniere table par exemple
enumereprixforfait1
id,IntituleId,PieceId,PrixTtc
deuxieme point:
l'utilisateur va choisir dans un formulaire le nombre de piece a partir d'un menu deroulant et le type de prestation qu'il veut que l'on realise .le type de prestation etant caractérisé par un Nom et une designation le tout present dans ma table enumereintituleprestation donc j'ai pensais a une requete suivante:
troisiement ,j'utilise une base de donnée mysql donc je j'utiliserai par fonction mysql_query poour envoyer me requete ,mais quelle est la fonction qui me permettra de recuperer mes enregistrement correspondant??et comment les afficher par la suite .
Merfi d'avance de vos conseils avisagés.[/code]
J'utilise la sgbd mysql.
je viens de crer 3 tables qui sont les suivantes:
Code : Tout sélectionner
REATE TABLE `enumereintituleprestation` (
`idIntitule` tinyint(20) NOT NULL auto_increment,
`NomIntitule` text NOT NULL,
`DeignationIntitule` text NOT NULL,
PRIMARY KEY (`idIntitule`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
--
-- Contenu de la table `enumereintituleprestation`
--
INSERT INTO `enumereintituleprestation` (`idIntitule`, `NomIntitule`, `DeignationIntitule`) VALUES
(1, 'Forfait 1', 'Carrez, Amiante, Termites, DPE et ERNT.'),
(2, 'Forfait 2', 'Carrez, Amiante, Termites, DPE, ERNT et Gaz.'),
(3, 'Forfait 3', 'Carrez, Amiante, Termites, DPE, ERNT, Gaz et Plomb.'),
(4, 'Amiante', 'Repèrage des matériaux et produits susceptibles de contenir de l''amiante'),
(5, 'Carrez', 'Certificat de superficie privative'),
(6, 'Dpe', 'Diagnostic de performance energétique'),
(7, 'Gaz', 'Constat des risques d''exposition au gaz'),
(8, 'Ptz', 'Prêt à taux Zéro ou Norme de surface et d''habitabilité'),
(9, 'Crep', 'Constat des risques d''exposition au plomb'),
(10, 'Termite', 'Diagnostic termites et autres insectes xylophages'),
(11, 'Electricite', 'Vérification des normes de votr einstallation electrique'),
(12, 'Ernt', 'Etat des risques naturels et technologiques');Code : Tout sélectionner
CREATE TABLE `enumerenbrepiece` (
`idPiece` tinyint(1) NOT NULL auto_increment,
`TitrePiece` text NOT NULL,
PRIMARY KEY (`idPiece`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Contenu de la table `enumerenbrepiece`
--
INSERT INTO `enumerenbrepiece` (`idPiece`, `TitrePiece`) VALUES
(1, 'F1'),
(2, 'F2'),
(3, 'F3'),
(4, 'F4'),
(5, 'F5'),
(6, 'Maison');
Code : Tout sélectionner
CREATE TABLE `enumereprixforfait1` (
`id` int(6) NOT NULL auto_increment,
`idIntitule` tinyint(3) NOT NULL,
`idPiece` tinyint(3) NOT NULL,
`PrixTtc` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Contenu de la table `enumereprixforfait1`
--
INSERT INTO `enumereprixforfait1` (`id`, `idIntitule`, `idPiece`, `PrixTtc`) VALUES
(1, 1, 1, 264),
(2, 1, 2, 280),
(3, 1, 3, 298),
(4, 1, 4, 315),
(5, 1, 5, 332),
(6, 1, 6, 432);
enumereprixforfait1
id,IntituleId,PieceId,PrixTtc
deuxieme point:
l'utilisateur va choisir dans un formulaire le nombre de piece a partir d'un menu deroulant et le type de prestation qu'il veut que l'on realise .le type de prestation etant caractérisé par un Nom et une designation le tout present dans ma table enumereintituleprestation donc j'ai pensais a une requete suivante:
Code : Tout sélectionner
SELECT enumereinituleprestation.NomIntitule,enumereintituleprestation.DesignationIntitule,enumereprixforfait1.PrixTtc
FROM enumereintituleprestation,enumerenbrepiece,enumereprixforfait1
WHERE enumereprixforfait1.idPiece='".$_POST['NbrePIeceSelectionneParFormulaire']."' AND enumereintituleprestation.NomInituleprestation='"..$_POST['NbreDePrestationSelectionneParFormulaire']."' ";
Merfi d'avance de vos conseils avisagés.[/code]