Autojointure...
Posté : 13 févr. 2006, 19:00
Bonjour, ça fait des heures que je galère pour essayer de m'en sortir avec une autojointure, mais je n'y arrive pas.
J'ai donc un forum en PHP, et là, il est question de la page qui doit afficher les messages disponibles dans une catégorie du forum. C'est donc un forum divisé en catégories/ sous catégories comme phpBB. En l'occurence, j'essaye d'afficher l'arborescence.... C'est à dire, le nom du et l'id de la ctatégorie mère du forum dans lequel on est (à partir du $id qui est définit dans l'URL)...
Voici l'architecture de la table :
Si l'IdRubMere = '0', c'est que l'insertion désigne une catégorie mère, sinon, IdRubMere désigne la catégorie mère de l'insertion. L'insertion désigne lors une rubrique qui possède une catégorie mère.
Revenons en à la page d'affichage de l'index des messages (viewforum). Il y a donc un $id qui est défini dans l'URL. Il désigne IdRub à chercher dans la base (il s'agit d'une rubrique). Et on veut le nom associé à cette rubrique (NameRub), mais également le nom de la catégorie mère, en passant donc par l'IdRubMere (étant donné qu'il s'agit d'une rubrique, IdRubMere est définit).
Voici le code de ma requete SQL qui ne fonctionne pas :
Cette requête n'affiche tout simplement ... rien !
D'avance merci à ceux qui pourront m'aider
J'ai donc un forum en PHP, et là, il est question de la page qui doit afficher les messages disponibles dans une catégorie du forum. C'est donc un forum divisé en catégories/ sous catégories comme phpBB. En l'occurence, j'essaye d'afficher l'arborescence.... C'est à dire, le nom du et l'id de la ctatégorie mère du forum dans lequel on est (à partir du $id qui est définit dans l'URL)...
Voici l'architecture de la table :
Code : Tout sélectionner
CREATE TABLE `forums` (
`IdRub` int(11) NOT NULL auto_increment,
`NameRub` text NOT NULL,
`IdRubMere` int(11) NOT NULL default '0',
PRIMARY KEY (`IdRub`)
) TYPE=MyISAM AUTO_INCREMENT=21 ;
Revenons en à la page d'affichage de l'index des messages (viewforum). Il y a donc un $id qui est défini dans l'URL. Il désigne IdRub à chercher dans la base (il s'agit d'une rubrique). Et on veut le nom associé à cette rubrique (NameRub), mais également le nom de la catégorie mère, en passant donc par l'IdRubMere (étant donné qu'il s'agit d'une rubrique, IdRubMere est définit).
Voici le code de ma requete SQL qui ne fonctionne pas :
Code : Tout sélectionner
$sql = "SELECT R1.NameRub, R1.IdRubMere, R2.IdRub, R2.NameRub FROM forums R1 INNER JOIN forums R2 ON (R1.IdRubMere = R2.IdRub) WHERE R1.IdRub='$id'";
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$foruminfos = mysql_fetch_array($result);
echo "Nom de la rubrique du forum". $foruminfos['R1.NameRub'];
echo "Nom de la catégorie mère de la rubrique du forum". $foruminfos['R2.NameRub'];D'avance merci à ceux qui pourront m'aider