JeuWeb - Crée ton jeu par navigateur
[Reglé]Jointure SQL aléatoirement efficace... - 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 : [Reglé]Jointure SQL aléatoirement efficace... (/showthread.php?tid=1406)



[Reglé]Jointure SQL aléatoirement efficace... - Byleth - 03-07-2007

Bon, voilà, je me dis que ça évitera de polluer le forum avec des questions minables, et s'il faut, on détaillera dans un autre sujet.

Je regrouperai donc toutes mes petites questions ici.

Ma première concerne les jointures :

Code PHP :
<?php 
$requete
=mysql_query('SELECT d.Nom,d.Type,d.Bonus,d.Portee,d.PA FROM description_objets d INNER JOIN
rat r WHERE r.Id='
.$idjoueur.' & r.Main1=d.Id') or die(mysql_error());

L'intérêt, c'est d'aller chercher l'arme appartenant à un rat UNIQUE et de récupèrer ses divers attributs.

Jusque là, pas de soucis, ça marche d'ailleur pas trop mal.

Le seul truc, c'est que l'un de mes rats possède une arme, il est le seul et unique à la possèder (pour le test) mais un autre est en mesure de l'utiliser. Je voulais donc savoir si ma requête réalisait bien ce que je souhaite...

Merci à tous...


RE: Les petites questions à Byleth - Nessper - 03-07-2007

Ben oui, je pense, t'as pas testé ?
Par contre pour ce qui est de mettre toute tes questions ici, c'est pas top. Parce que le titre ne décrit pas le problème hors le but c'est que quelqu'un qui a un problème voit dans cette section si son problème n'a pas été déjà rencontré et résolu. Donc je te conseille de renommer ce topic et d'en créer d'autres pour tous tes problèmes.


RE: Les petites questions à Byleth - Byleth - 03-07-2007

D'accord, c'était juste que c'était insignifiant.

Biensur je l'ai testé, d'ailleurs elle marche à 50%, mais j'ai vraiment un soucis au niveau de cette requête car cette fois, un autre rat n'a pas son arme...


RE: Jointure SQL aléatoirement efficace... - Byleth - 03-07-2007

Je crois savoir d'où vient le problème : de la condition.

En effet, je veux qu'il aille me chercher une info dans une ligne particulière. Hors là, je ne pense pas que ça fasse ça...


RE: Jointure SQL aléatoirement efficace... - Roworll - 03-07-2007

D'après ce que j'ai compris, ta requête doit faire le lien entre deux tables.
- rat (la table principale)
- description_objets (la table liée)

En regardant la requête que tu as fourni, je suppose que le lien entre ces deux tables se fait sur
- Main1 (table Rat)
- id (table description_objets)

Le lien que tu utilises est une jointure interne. Cela signifie que tu ne récupèrera que les enregistrements qui existent à la fois dans les deux tables.
Ainsi, si l'id de l'objet que tient le rat dans sa main1 n'existe pas dans la table description_objets, la requête ne renverra rien.

Commence par réécrire ta requête avec un format plus correct (INNER JOIN <table> ON <jointure>
Code PHP :
<?php 
$requete
=mysql_query('SELECT d.Nom,d.Type,d.Bonus,d.Portee,d.PA
FROM description_objets d
INNER JOIN rat r on r.Main1=d.Id
WHERE r.Id='
.$idjoueur) or die(mysql_error());


Cette requête te renverra les informations correspondant à l'objet que le rat tient dans sa main1 si
- Main1 contient une valeur
- cette valeur existe dans la colonne id de la table description_objets


RE: Jointure SQL aléatoirement efficace... - Byleth - 03-07-2007

Oui oui Roworll, j'ai suivi le tuto de Sephi donc j'ai bien compris le principe, ne t'inquiètes pas. Donc par contre, au moment ou j'ai éteint le PC hier, je me suis dit que j'aurais du remettre mon nez dedans pour vérifier ce genre de petite chose. Je teste donc ce que tu m'as mis.

Edit: Bon bah voilà, je savais que c'était minable et effectivement, c'était le ON. Au moins j'avais vu que ma condition ne suffisait pas ^^

Merci beaucoup.