cs_MonPied
Messages postés1Date d'inscriptionmardi 2 décembre 2008StatutMembreDernière intervention19 mars 2009
-
19 mars 2009 à 16:55
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
19 mars 2009 à 19:19
Bonjour,
j'explique mon problème, après un sujet ou je demandais de l'aide pour éviter de faire plein de fois une requête un Zéro me proposa d'utiliser un LEFT JOIN à l'intérieur de SELECT. Après avoir lue un tutoriel je le créa rapidement, mais j'ai beaucoup, pour pas dire énormément de problème. Voici la source et si dessous les problèmes :
Code : PHP
<?php $titre="Forum";
include("includes/haut.php"); ?>
<?php if(isset($_GET['rubrique']))
{
}
elseif(isset($_GET['rubrique']) AND isset($_GET['tropic']))
{
}
else
{
$forum = mysql_query("SELECT forum_titre.id AS id_titre,
forum_titre.titre AS titre_titre,
forum_rubrique.id AS forum_id,
forum_rubrique.id_titre,
forum_rubrique.titre AS forum_titre,
forum_rubrique.commentaire AS forum_commentaire
FROM forum_titre
LEFT JOIN forum_rubrique
ON forum_titre.titre = forum_rubrique.id_titre ") or die(mysql_error());
while($titre = mysql_fetch_array($forum))
{
echo $titre['id_titre'];
echo $titre['titre_titre'];
echo " ".$titre['titre_titre']."
";
if($titre['titre_titre'] == NULL)
{
echo '1';
}
while($rubrique = mysql_fetch_array($forum))
{
if($rubrique['id_titre'] == $titre['id_titre'])
{
echo " [forum- ]
[forum- ]
[forum- ]
[forum- ]
Voilà je pense avoir bien explique le problème (Ps : J'ai déjà fais diverse recherche mais j'ai rien trouver... soit je suis nul, soit je suis l'un des rares idiots à ne pas réussir ceci, soit personne n'a traiter de ça ici.)
(ps2 : Si voulue je fais des photos de la tables mysql)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 19 mars 2009 à 19:19
Hello,
t'as peut-être bien expliqué...mais moi je n'ai rien compris!
En tous cas, ton code est très, très bizarre...pourquoi tu fais 2 boucles while() imbriquées?? Ca ne peut pas marcher. (je demande pourquoi, mais en fait, je sais pourquoi...)
Bon...
Que fait un LEFT JOIN ?
Imaginons ces 2 tables :
table noms
nom_id = 1
nom_libelle = DUPOND
Et cette requête:
SELECT nom.nom_libelle, prenom.prenom_libelle
FROM noms nom
LEFT JOIN prenoms prenom ON prenom.nom_id = nom.nom_id
Elle va me ressortir 3 lignes contenant :
1 : DUPOND, toto
2 : DUPOND, titi
3 : DUPONT, null
Un INNER JOIN à la place du LEFT JOIN va me sortir 2 lignes :
1 : DUPOND, toto
2 : DUPOND, titi
Si tu fais 2 boucles imbriquées, je suppose que c'est pour éviter la répétition de ton titre...je me trompe?
Mais ça ne marche pas comme ça!
Tu dois ne faire qu'une boucle, et pour ton affichage, tester où tu en es en déclarant une variable temporaire, pour faire simple.
Avec ma requête (après le mysql_query()):