Bonjour,
je suis embêté pour formuler une requète: je voudrais afficher la liste de résultat d'un champ titre sous un champ Item (titre_rubrique) ceci afin de lister des pages de contenus(table article) dans un menu (table rubrique) un peu sur le principe CMS.
Voici la structure des tables:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- Structure de la table `article`
 
CREATE TABLE `article` (
  `id_article` int(5) NOT NULL auto_increment,
  `auteur` varchar(100) NOT NULL,
  `titre` varchar(255) NOT NULL,
  `date_pub` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `resume` varchar(255) default NULL,
  `intro` text,
  `texte` text NOT NULL,
  `liens` text,
  PRIMARY KEY  (`id_article`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='Table contenant le contenu des pages du site' AUTO_INCREMENT=# ;
 
-- Structure de la table `rubrique`
 
CREATE TABLE `rubrique` (
  `id_rubrique` int(5) NOT NULL auto_increment,
  `auteur` varchar(100) NOT NULL,
  `titre_rubrique` varchar(255) NOT NULL,
  `date_pub` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `resume` varchar(255) default NULL,
  `intro` text,
  `texte` text NOT NULL,
  `liens` text,
  PRIMARY KEY  (`id_rubrique`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='Table contenant les Items nécessaires à la navigation (menus)' AUTO_INCREMENT=# ;
 
 
Structure de la table `association`
 
CREATE TABLE `association` (
  `id` int(4) NOT NULL auto_increment,
  `titre` varchar(255) NOT NULL,
  `titre_rubrique` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='permet d''associer articles et thèmes' AUTO_INCREMENT=20 ;
Voici ce que j'ai pondu en requète
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
  //titre POUR REQUETE SQL
 $titre = $_GET['titre'];
 //titre_rubrique est à la fois présent dans les tables rubrique et association
 $titre_rubrique = $_GET['titre_rubrique'];
$id = $_GET['id'];
// Requête SQL 
$reponse = mysql_query("SELECT DISTINCT * FROM association LEFT JOIN rubrique ON association.titre_rubrique = rubrique.titre_rubrique GROUP BY rubrique.titre_rubrique ORDER BY association.titre_rubrique"); 
 
// Boucle qui liste tout ce que contient la table :
while ($result = mysql_fetch_array($reponse) )
{
//résultat affichant la rubrique et les articles en référence d'après la table association
echo ('<a href="rubrique.php?titre_rubrique='.$result['titre_rubrique'].'">'.$result['titre_rubrique'].'</a>');
echo ('<div id="listArt">'.'<a href="article.php?titre='.$result['titre'].'">'.$result['titre'].'</a>'.'</div>').'<br />';
 
  }
Le problème c'est que GROUP BY n'affiche qu'un résultat de 'titre_rubrique' même si j'ai plusieurs 'titre' associé à ce champ .
Si je supprime cette clause, j'ai à chaque 'titre' d'article un 'titre_rubrique' ce qui fait redondance.