jointure de table avec un where?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : jointure de table avec un where?

Re: jointure de table avec un where?

par Jc71 » 14 janv. 2017, 12:43

Bonjour,

1) Déjà on est pas des devins car tu ne nous a pas montré l'erreur que tu obtiens. Elle n'est pas évidente car vu ton code il peut y avoir une multitude de problèmes
2) Parmi ces problèmes tu utilises une variable publique non filtrée dans ta requête avec le $_GET qui est une très mauvaise pratique car elle permet l'injection SQL et donc le piratage de ton site/code. Par extension cette variable peut contenir n'importe quoi et donc faire planter ta requête.
3) On ne fait pas de SELECT * dans une requête. Quand tu vas au supermarché tu ne remplis pas ton caddie juste pour acheter une baguette à la caisse non? bien là c'est pareil.

++

Re: jointure de table avec un where?

par Spols » 14 janv. 2017, 12:10

Il faut que tu précise de quelle table tu regarde id_membre, SQL ne peut le déterminer lui même. Malgré que PP.id_membre est forcement identique à ME.id_membre de r ta jointure, SQL ne le sait pas et ne sait donc pas ce qu'il doit utilisé dans ta clause WHERE
précise de quelle table est tiré ce champs dans ta clause WHERE pour régler le problème
$annonce_sql = "SELECT * FROM membre_plus ME LEFT JOIN photo_profil PP ON ME.id_membre = PP.id_membre WHERE ME.id_membre=".$_GET['detail_p']."";

jointure de table avec un where?

par pacphil » 13 janv. 2017, 23:19

bonjour j'ai un liens pour voir un profil des membres mais comme je viens de réalise ma premier jointure il y a quelque jours, je suis pas encore parfait sur ce niveau et j'ai une erreur.

le liens
echo '<img src="imdesign/h.png" width="20" height="20" title="Homme"/><a href="http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/profil_membre.php?detail_p='.$id_membre.'"style="color:#0000FF;">'.$pseudo.'</a>';
le select avec la jointure et WHERE
$annonce_sql = "SELECT * FROM membre_plus ME LEFT JOIN photo_profil PP ON ME.id_membre = PP.id_membre WHERE id_membre=".$_GET['detail_p']."";
$res = $connection->query($annonce_sql);
while ($result = $res->fetch()){