Probleme jointure entre table

Résolu/Fermé
TheBleedz - 23 sept. 2011 à 20:54
 A.Nonymous - 25 sept. 2011 à 17:07
Bonjour,
Voila j'aimerai savoir si ces possible de créer une jointure entre mes deux tables "amis & membres". J'ai crée une petit script mais bon il marche pas très bien ce qu'il faudrait ces que j'arrive a créer une seul requete SQL au lieu de deux a la suite mais bon l'idée et la et ça marche sauf qu'il a un bug. Comme ils sont a la suite, l'affichage ne ce fait pas totalement, enfin ces pas le problème. Toute la journée me suis amuser a trouver une solution mais ca me renvoie a chaque fois une erreur pour la jointure, j'ai essayer externe et internet, mais j'y arrive pas, pourtant j'ai compris le principe. Pour cella que je me retourne vers vous, en espérant trouver des réponse

	$id = htmlspecialchars($_SESSION['membre_id']);
        // On se connecte à MySQL
       $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
       $bdd = new PDO('mysql:host=localhost;dbname=bleedz', 'root', '', $pdo_options);
    
       // On récupère tout le contenu de la table amis
       $reponse_amis = $bdd->query("SELECT membre_id_ajt FROM amis WHERE membre_id='".$id."'");
    $donnees_amis = $reponse_amis->fetch();
	// On récupère tout le contenu de la table membres
	$reponse_nom = $bdd->query("SELECT membre_nom FROM membres WHERE membre_id='".$donnees_amis['membre_id_ajt']."'");
    // On affiche chaque entrée une à une
    while ($donnees_nom = $reponse_nom->fetch())
    {
    ?>
    	<div id="lien_amis">
        <strong>Amis</strong> : <?php echo htmlspecialchars($donnees['membre_nom'], ENT_QUOTES);?>
        <a href="profil.php?id=<?php echo $donnees['membre_id_ajt']?>">Amis</a>
        </div>
    <?php
    }
    
    $reponse_nom->closeCursor(); // Termine le traitement de la requête



Tout marcher comme sur des roulettes a partir de la requête de la table "amis" sauf que j'aurai voulus récupérer le nom de l'amis au lieu de l'id, pour que ca face plus présentable comme un peu sur facebook (liste d'amis). Depuis il n'affiche que le premier amis que j'ai et pas la suite de la liste.
Merci d'avance et bonne soirée a vous.

1 réponse

SELECT membres.membre_nom
FROM membres
INNER JOIN amis
ON amis.membre_id_ajt = membres.membre_id
WHERE amis.membre_id = ?id?

Ces 2 tables ayant des noms de champ en commun, il peu y avoir ambiguïté si la table en question n'est pas précisée.
0
Merci de ta réponse rapide j'ai plus ou moins compris comment ca marcher sauf ce point si : ON amis.membre_id_ajt = membres.membre_id
Tu pourrais m'expliquer ce que ca fait ? Si ca te dérange pas ;)
Merci encore.
0
amis.membre_id_ajt et egale a membres.membre_id de la session activer ? Enfin de ce que je croix xD
0
Cela fait partie de la définition de la jointure, et précise de quelle manière la jointure entre 2 tables doit se faire.
0