par
albius » 11 févr. 2009, 13:08
Bonjour,
Je dois développer un listing pour des commandes. Chaque listing se lit par laboratoire (pâtisserie, boulangerie, charcuterie etc...) et ensuite par section (adultes, bac pro, BEP...) Pour parler concrètement, voici un exemple:
Labo Boulangerie
---------------------------
Section Adultes
Oeuf 15 unités
Farine 3 kilos
Chocolat 5 kilos
Bac pro
Brioche 3 kilos
Chocolat 5 kilos
etc...
Maintenant, voici la composition de la table 'commandes':
Code : Tout sélectionner
CREATE TABLE `commandes` (
`idCom` int(4) NOT NULL auto_increment,
`designation` text collate utf8_unicode_ci NOT NULL,
`quantite` decimal(10,0) NOT NULL,
`section` text collate utf8_unicode_ci NOT NULL,
`idUser` int(2) NOT NULL,
PRIMARY KEY (`idCom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ;
--
-- Contenu de la table `commandes`
--
INSERT INTO `commandes` (`idCom`, `designation`, `quantite`, `section`, `idUser`) VALUES
(1, 'Julienne de légumes', 3, 'Adultes', 1),
(2, 'Côte de porc', 5, 'Bac Pro', 1),
(3, 'faux-filet', 8, 'BEP', 1),
(6, 'Côte de porc', 3, 'Adultes', 5),
(7, 'Cuisse de volaille', 8, 'BP', 5),
(8, 'Cuisse de volaille', 5, 'BEP', 1),
(9, 'Opéra', 5, 'BP', 5);
On voit très clairement que j'ai des sections qui reviennent plusieurs fois dans cette table, et ceux pour un même idUser (qui correspond au laboratoire en fait) BEP pour idUser=1 par exemple.
Comment, pour respecter la mise en page de mon listing ci-dessus, je peux afficher qu'une seule fois la section, mais dérouler l'ensemble des produits (designation dans la table) s'y rattachant ?
J'ai fais une requête:
Puis ensuite une boucle:
while($data = mysql_fetch_array($requete)) {
echo $data['section'].'<br>';
echo $data['designation'].' '.$data['quantite'].'<br>';
}
Mais j'ai une redite des informations sur les sections... Comment effacer les doublons ?
merci,
Bonjour,
Je dois développer un listing pour des commandes. Chaque listing se lit par laboratoire (pâtisserie, boulangerie, charcuterie etc...) et ensuite par section (adultes, bac pro, BEP...) Pour parler concrètement, voici un exemple:
Labo Boulangerie
---------------------------
[u]Section Adultes[/u]
Oeuf 15 unités
Farine 3 kilos
Chocolat 5 kilos
[u]Bac pro[/u]
Brioche 3 kilos
Chocolat 5 kilos
etc...
Maintenant, voici la composition de la table 'commandes':
[code]CREATE TABLE `commandes` (
`idCom` int(4) NOT NULL auto_increment,
`designation` text collate utf8_unicode_ci NOT NULL,
`quantite` decimal(10,0) NOT NULL,
`section` text collate utf8_unicode_ci NOT NULL,
`idUser` int(2) NOT NULL,
PRIMARY KEY (`idCom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ;
--
-- Contenu de la table `commandes`
--
INSERT INTO `commandes` (`idCom`, `designation`, `quantite`, `section`, `idUser`) VALUES
(1, 'Julienne de légumes', 3, 'Adultes', 1),
(2, 'Côte de porc', 5, 'Bac Pro', 1),
(3, 'faux-filet', 8, 'BEP', 1),
(6, 'Côte de porc', 3, 'Adultes', 5),
(7, 'Cuisse de volaille', 8, 'BP', 5),
(8, 'Cuisse de volaille', 5, 'BEP', 1),
(9, 'Opéra', 5, 'BP', 5);[/code]
On voit très clairement que j'ai des sections qui reviennent plusieurs fois dans cette table, et ceux pour un même idUser (qui correspond au laboratoire en fait) BEP pour idUser=1 par exemple.
Comment, pour respecter la mise en page de mon listing ci-dessus, je peux afficher qu'une seule fois la section, mais dérouler l'ensemble des produits (designation dans la table) s'y rattachant ?
J'ai fais une requête:
[code]SELECT * FROM commandes WHERE idUser=1 ORDER BY section ASC[/code]
Puis ensuite une boucle:
[php]while($data = mysql_fetch_array($requete)) {
echo $data['section'].'<br>';
echo $data['designation'].' '.$data['quantite'].'<br>';
}[/php]
Mais j'ai une redite des informations sur les sections... Comment effacer les doublons ?
merci,