begin process at 2012 05 31 01:34:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème avec une requête contenant LEFT JOIN.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec une requête contenant LEFT JOIN.

jeudi 19 mars 2009 à 16:55:14 | Problème avec une requête contenant LEFT JOIN.

MonPied

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"); ?>

<div id="corps">

<?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 " <p class=\"border\">".$titre['titre_titre']."</p>";

if($titre['titre_titre'] == NULL)

{

echo '1';

}

while($rubrique = mysql_fetch_array($forum))

{

if($rubrique['id_titre'] == $titre['id_titre'])

{

echo " <p><a href=\"forum-".$rubrique['forum_id']."\">".$rubrique['forum_titre']."</a><br />".$rubrique['forum_commentaire']."</p>";

}

echo $rubrique['forum_id'];

echo $rubrique['id_titre'];

echo $rubrique['forum_titre'];

echo $rubrique['forum_commentaire'];

}

}

} ?>

</div>

<?php include("includes/bas.php"); ?>

Pour expliquer brièvement tout les echos placer n'importe ou :

J'avais décidé de faire un teste et j'ai remarquer qu'absolument toute les valeurs était égal à NULL, toute ? Non, une seule résiste encore à l'envahisseur : titre_titre alias forum_titre.titre.

Voici l'un des plus grosses erreurs, j'ai inspecter plein de fois et même copier-coller le code de l'unique résistance (titre_titre) en modifiant les valeurs, rien à faire. Je n'ai absolument aucune erreur.

Autre problème : La boucle pour afficher le(s) titre(s), il m'affiche qu'un seul et le premier. Par contre pour la phrase : Code : PHP

 

<?php echo " <p><a href=\"forum-".$rubrique['forum_id']."\">".$rubrique['forum_titre']."</a><br />".$rubrique['forum_commentaire']."</p>"; ?>

 

 

Il m'affiche que le texte, signe que les variables sont nul :

Code : HTML

<p class="border">Partie règlement</p> <p><a href="forum-"></a><br /></p> <p><a href="forum-"></a><br /></p> <p><a href="forum-"></a><br /></p> <p><a href="forum-"></a><br /></p> </div>

 

 

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)

jeudi 19 mars 2009 à 19:19:29 | Re : Problème avec une requête contenant LEFT JOIN.

malalam

Administrateur CodeS-SourceS
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

nom_id = 2
nom_libelle = DUPONT

table prenoms
prenom_id = 1
prenom_libelle = toto
nom_id = 1

prenom_id = 2
prenom_libelle = titi
nom_id = 1

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()):

<?php
$sTempNomSave = null;
while($aData = mysql_fetch_assoc($ressourceDeMonMysqlQuery)) {
    if($aData['nom_libelle'] !== $sTempNomSave) {
        $sTempNomSave = $aData['nom_libelle'];
        echo 'NOM : ', $aData['nom_libelle'], '<br />';
    }
    echo 'PRENOM : ', $aData['prenom_libelle'], '<br />';
}
?>




Cette discussion est classée dans : forum, titre, id, echo, rubrique


Répondre à ce message

Sujets en rapport avec ce message

Petit problème surmontable insurmonté [ par dcbastien ] Voici ce que j'ai mis au point qui est quelque chose de très simple:if( isset( $_GET['action'] ) ){ $action = $_GET['action'];}else $action = "";switc variables qui disparaissent [ par zoomzoomzoomzoom ] Hello,j'ai un soucis de variables qui disparaissent...voici une partie de mon code d'une page "pics.php": $id = $_GET['id'];//$id = "hel Fonction récursive étrange [ par boulika ] Bonjour à tous,Voila j'ai un petit probleme , je viens de faire une boucle récursive qui va m'afficher sous forme d'esaclier des rubriques et des sous Couleur par rapport à une certaine réponse [ par biloutte33 ] Bonjour tout le monde,J'aimerais savoir comment différencier de couleurs des réponses sqlexemple de ce que je souhaite faire :J'ai un forum et un site unexpected { [ par biloutte33 ] Bonjour tout le monde voici mon code : $reponse = mysql_query('SELECT * FROM `ibf_topics` Where Forum_id=49 OR Forum_id=50 ORDER BY start_date DES Probleme avec ma page admin [ par Danzeel ] Bonjour a tous je suis en train de créer mon forum cependant je tombe nez à nez avec un problème.Voici l'erreur qu'on me mentionne: Notice: Undefined récursivité [ par eltyty ] Bonjour, Je souhaite faire une boucle récursive afin d'afficher mes rubriques et sous rubriques. Mais pour éviter une trop grande longueur de page je UPDATE Requete preparé PDO help [ par Rido159 ] Bonjour tout le monde ^_^ voila je fais un projet pour l'ecole, ça fais 3 jours que je suis bloqué aidé moi svp (si c'est possible de m expliqué ou besoins aide de corriger un travail de php [ par xayoubx ] salut, j'ai realiser un premier travail de php et j'ai des erreurs ,et je demande à un(e) personne pour avoir aider dans ce travail ,ce dernier avoir xml et php [ par karouani ] voila une partie de mon fichier XML NOVANCIA Bachelor http://www.mon-ecole-commerce.com/ecole-de-commerce/ecole-apres-bac/ecole-en-3-ans/bachelor-nov


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales