INNERJOIN remplacer la valeur d'une table par

Fermé
Jay - 17 déc. 2009 à 20:38
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 - 17 déc. 2009 à 21:39
Salut,
Salut, voila mon problème:

Sur MySql, j'ai les 3 tables suivantes:

[img]http://tinypic.com/images/goodbye.jpg[/img]

J'aimerais pouvoir afficher avec un script php le nom du membre ("login" dans la table members) et cela en remplaçant l'id_member par le login.

Je pense à utiliser INNER JOIN et recupérer la donnée dans une variable mais en vain.

[code=php]<?php
//connection à la base de données

mysql_connect($host, $bd_login, $bd_pass) or die ("Impossible de se connecter");
mysql_select_db($bd);

// requête

$query = "SELECT * FROM images INNER JOIN members ON members.login = images.id_user WHERE id_member=$id_image"; //id_member=$id_image soit $id_image l'image lié au membre

// recolte du resultat et affichage

$result = mysql_query($query);

while($row = mysql_fetch_row($result)){
$quelquechose = $row[quelquechose]; //la je ne sais pas

}

?>/code

Comment procéder pour remplacer l'id du membre (lié à l'id d'une image) par son nom d'utilisateur (login) ? Je m'y perd completement [^^choc]
A voir également:

1 réponse

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
17 déc. 2009 à 21:39
Salut. Perso, je n'utilise jamais "mysql_fetch_row", je préfère largement "mysql_fetch_array".

Es tu sur que le champs "id_user" existe bien ? Dans le MCD que tu as joins, il n'apparait pas en tout cas.

J'ai remanié un peu ton code et voila ce que ça donne :
$query =	"SELECT b.login AS log, a.id_image AS img FROM images a
			 INNER JOIN members b
			 ON b.id_member = a.id_member 
			 WHERE b.id_member = $id_image"; 

// recolte du resultat et affichage

$result = mysql_query($query) or die ('Erreur : '.mysql_error() );


while($row = mysql_fetch_array($result)){
$login = $row['log'];
$image = $row['img'];
}

echo $login.'<br />'.$image;


Vu que je suis fainéant, j'ai remplacé le nom de tes tables par des alias (a et b), moins de truc à taper.
Ensuite, j'ai indiqué à la requête quels champs sont vraiment utiles auxquelles j'ai attribué un nom pour pouvoir les appeler facilement avec PHP.

Voila, avec ça, tu devrais pouvoir t'en sortir. J'ai testé et ça fonctionne nickel.
0