JeuWeb - Crée ton jeu par navigateur
Requête : Warninig [reglé] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Requête : Warninig [reglé] (/showthread.php?tid=1265)

Pages : 1 2


RE: Requête : Warninig [reglé] - Maegia - 10-06-2007

Tu peux aussi faire :

Code PHP :
<?php 
$sql
= mysql_query
('
SELECT
joueurs.*,
ressources.*
FROM
joueurs,
ressources
WHERE
joueurs.id = ressources.id
AND
joueurs.id = "'
. $id .'"
'
) or die(mysql_error());

Et ainsi, t'as tout dans le même résultat !


RE: Requête : Warninig [reglé] - Sephi-Chan - 10-06-2007

C'est un peu sale comme jointure. Il faut éviter de mettre les conditions de jointures dans la clause WHERE.

Mieux vaut la faire proprement, en utilisant JOIN, comme ceci :
Code PHP :
<?php 
$s_sql
= sprintf("SELECT J.*, R.* FROM joueurs J JOIN ressources R ON R.id = J.id WHERE J.id =%d", $id);
$q_sql = mysql_query($s_sql) or die(mysql_error());


Sephi-Chan


RE: Requête : Warninig [reglé] - kEkRkIkC - 10-06-2007

Sephi-Chan a écrit :C'est un peu sale comme jointure. Il faut éviter de mettre les conditions de jointures dans la clause WHERE.

Pourquoi ?

Sephi-Chan a écrit :Mieux vaut la faire proprement, en utilisant JOIN, comme ceci :
Code PHP :
<?php 
$s_sql
= sprintf("SELECT J.*, R.* FROM joueurs J JOIN ressources R ON R.id = J.id WHERE J.id =%d", $id);
$q_sql = mysql_query($s_sql) or die(mysql_error());


Sephi-Chan

Sauf qu'ici c'est une jointure externe qui ne donne pas du tout le meme résultat qu'une jointure classique.

Code PHP :
<?php 
SELECT J
.*, R.* FROM joueurs J INNER JOIN ressources R ON R.id = J.id WHERE J.id = $id

La c'est une jointure classique, mais je trouve la notation beaucoup moins simple personnellement.


RE: Requête : Warninig [reglé] - pascal - 10-06-2007

kEkRkIkC a écrit :
Sephi-Chan a écrit :C'est un peu sale comme jointure. Il faut éviter de mettre les conditions de jointures dans la clause WHERE.

Pourquoi ?

parce que d'un point de vue logique le FROM définit les tables et leurs relations, alors que le WHERE définit les conditions. en résumé c'est une question de lisibilité.

A+

Pascal