Oui j'ai essayer de faire ça :
<?
// On récupère tous les articles, triés par catégorie, titre, référence.
$req = 'SELECT photos.Titre, photos.Prix, photos.SSCatID=photos_cats.Name
FROM photos, photos_cats
ORDER BY photos.SSCatID , photos.Titre, photos.Prix';
$res = mysql_query($req) or exit('Erreur: '.mysql_error());
$sscatid = null;
echo('<select name="article">');
while ($donnees = mysql_fetch_assoc($res)) {
// Si on change de catégorie, on l'affiche dans le <select>.
if ($donnees['SSCatID '] !== $SSCatID) {
$SSCatID = $donnees['SSCatID '];
echo('<optgroup label="'.$SSCatID .'">');
}
//On ajoute "logiquement" notre <option>.
echo('<option value="'.$donnees['Prix'].'">'.$donnees['Titre'].'</option>');
}
mysql_close(); // on ferme la connexion}
echo('</select>');
?>
Voici ce que ça donne dans mon formulaire de contact :
http://www.rolandchaigne.com/contact.php
Voici mes 2tables :
-- Structure de la table `photos_cats`
--
CREATE TABLE `photos_cats` (
`Numero` int(2) NOT NULL auto_increment,
`CatP` int(4) NOT NULL default '0', ( ça c'est pour une autre categorie donc pas besoin )
`Name` varchar(20) NOT NULL default '',
UNIQUE KEY `Name` (`Name`),
KEY `Numero` (`Numero`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table des sous catégories de tableaux' AUTO_INCREMENT=8 ;
--
-- Contenu de la table `photos_cats`
--
CREATE TABLE `photos` (
`Numero` int(5) NOT NULL auto_increment,
`Titre` varchar(30) NOT NULL default '',
`CatID` int(2) NOT NULL default '0',
`SSCatID` int(4) NOT NULL default '0',
`ImgSrc` varchar(200) NOT NULL default '',
`Comment` text NOT NULL,
`Prix` decimal(6,2) NOT NULL default '0.00',
KEY `Numero` (`Numero`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table des photos du site.' AUTO_INCREMENT=3 ;
--
-- Contenu de la table `photos`