Je rencontre des difficultés dans l'écriture d'une requête. Il s'agit de récupérer (en autres) des produits pour un bon de commande. Pour ce faire, j'ai trois composants essentiels à prendre en compte :
les fournisseurs
les labo(ratoire)s
Chaque labo a ses sections (CAP, BP, BAC...)
La table admincom regroupe la totalité des commandes créées. Je dois pouvoir récupérer tous les produits commandé pour chaque fournisseur. Puis indiquer par la suite quel labo a enregistré tels produits pour quelle section. Cela donnerait à l'affichage:
le fournisseur
le labo
la section
la désignation du produit - la quantité - le conditionnement
etc.
la section
etc.
labo
etc.
Pour l'instant, j'ai écris ceci:
$select = 'SELECT produits.designation, quantite, section, admincom.idUser, labo, produits.conditionnement FROM produits INNER JOIN admincom ON admincom.designation = produits.designation INNER JOIN users ON admincom.idUser = users.idUser INNER JOIN fournisseurs ON produits.idFrs = fournisseurs.idFrs WHERE fournisseurs.idFrs = 2 GROUP BY produits.designation, produits.conditionnement';
je pense que mes jointures sont bonnes, mais je bloque sur la fin de la requête... Je fais donc appel à vos lumières. La structure de la base:
Code : Tout sélectionner
-- Base de données: `alimentaires
-- --------------------------------------------------------
-- Structure de la table `admincom`
CREATE TABLE IF NOT EXISTS `admincom` (
`idCom` int(4) NOT NULL AUTO_INCREMENT,
`designation` text COLLATE utf8_unicode_ci NOT NULL,
`quantite` decimal(10,1) NOT NULL,
`section` text COLLATE utf8_unicode_ci NOT NULL,
`idUser` int(2) NOT NULL,
PRIMARY KEY (`idCom`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=133 ;
-- -------------------------------------------------------
-- Structure de la table `categories`
CREATE TABLE IF NOT EXISTS `categories` (
`idCat` int(2) NOT NULL AUTO_INCREMENT,
`categorie` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`idCat`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;
-- --------------------------------------------------------
-- Structure de la table `conditionnement`
CREATE TABLE IF NOT EXISTS `conditionnement` (
`idCond` int(2) NOT NULL AUTO_INCREMENT,
`conditionnement` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`idCond`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=29 ;
-- --------------------------------------------------------
-- Structure de la table `fournisseurs`
CREATE TABLE IF NOT EXISTS `fournisseurs` (
`idFrs` int(2) NOT NULL AUTO_INCREMENT,
`raisonSociale` text COLLATE utf8_unicode_ci NOT NULL,
...
-- --------------------------------------------------------
-- Structure de la table `produits`
CREATE TABLE IF NOT EXISTS `produits` (
`idPdts` int(4) NOT NULL AUTO_INCREMENT,
`designation` text COLLATE utf8_unicode_ci NOT NULL,
`conditionnement` text COLLATE utf8_unicode_ci NOT NULL,
`idFrs` int(2) NOT NULL,
`idCat` int(2) NOT NULL,
PRIMARY KEY (`idPdts`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=441 ;
-- --------------------------------------------------------
-- Structure de la table `sections`
CREATE TABLE IF NOT EXISTS `sections` (
`idSect` int(2) NOT NULL AUTO_INCREMENT,
`section` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`idSect`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
-- --------------------------------------------------------
-- Structure de la table `users`
CREATE TABLE IF NOT EXISTS `users` (
`idUser` int(2) NOT NULL AUTO_INCREMENT,
`nom` text COLLATE utf8_unicode_ci NOT NULL,
`mdp` text COLLATE utf8_unicode_ci NOT NULL,
`labo` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`idUser`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=15 ;