TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> Jointure Mysql ... Uniquement Pour Order By, ....
Sybler
Ecrit le : Jeudi 13 Janvier 2005 à 07h29
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


ceci est ma requete:

CODE
SELECT * FROM itemsmagasin WHERE magasin='" . $logged_pj_lieu . "' ORDER BY itemsdb.type (WHERE itemsmagasin.itemid=itemsdb.id) ASC;


évidament ca ne fonctionnera surement pas, a cause du WHERE entre parentaise ...
mais je pense que vous comprennez ce que j'essaie de faire.

Vous pouvez me donner le coup de pouce qui me manque afin de faire fonctionner cette requete ?


--------------------
user posted image
PMEmail PosterUsers Website
Top
Arckam
Ecrit le : Jeudi 13 Janvier 2005 à 09h49
Quote Post


Pro
*

Groupe : Membre
Messages : 137


Sans être sur de ce que tu veux, tu pourrais faire un truc du genre :

CODE
SELECT im.* FROM itemsmagasin im inner join itemsdb id on im.itemid=id.id
WHERE magasin='" . $logged_pj_lieu . "'
ORDER BY id.type;


Ou encore si tu préfère les where

CODE
SELECT im.* FROM itemsmagasin as im, itemsdb as id
WHERE im.magasin='" . $logged_pj_lieu . "'
and im.itemid=id.id
ORDER BY id.type;


Pas besoin de spécifier ASC, c'est le mode par défaut.
Ca te semble correspondre à ce dont tu as besoin?
PMEmail Poster
Top
Nonothehobbit
Ecrit le : Jeudi 13 Janvier 2005 à 11h05
Quote Post


Alien
*

Groupe : Moderateurs
Messages : 1298


Je pense qu'il a fait cette requete tordue pour ne pas avoir à récupérer toutes les données de la table sur laquelle il fait le tri. Pour ça, il suffit de faire :

CODE
SELECT itemsmagasin .* FROM itemsmagasin,itemsdb WHERE magasin='" . $logged_pj_lieu . "' AND  itemsmagasin.itemid=itemsdb.id ORDER BY itemsdb.type


--------------------
user posted image
PMEmail PosterUsers Website
Top
Arckam
Ecrit le : Jeudi 13 Janvier 2005 à 11h08
Quote Post


Pro
*

Groupe : Membre
Messages : 137


Si je ne dis pas de bêtises, la requête que tu propose, Nonothehobbit, est exactement la même que moi smile.gif
PMEmail Poster
Top
Nonothehobbit
Ecrit le : Jeudi 13 Janvier 2005 à 13h40
Quote Post


Alien
*

Groupe : Moderateurs
Messages : 1298


Non, toi tu sélectionnes tous les champs, alors qu'il ne veux que les champs de itemsmagasin, ce qui selon moi a amené à sa requête bizarre.

Enfin je me trompe peut-être. ^^


--------------------
user posted image
PMEmail PosterUsers Website
Top
Arckam
Ecrit le : Jeudi 13 Janvier 2005 à 14h24
Quote Post


Pro
*

Groupe : Membre
Messages : 137


Ah oui, très juste, autant pour moi smile.gif

J'édite mes queries pour corriger ça.
PMEmail Poster
Top
Sybler
Ecrit le : Dimanche 16 Janvier 2005 à 03h22
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


QUOTE (Nonothehobbit @ 13 Jan 2005, 10:05 )
Je pense qu'il a fait cette requete tordue pour ne pas avoir à récupérer toutes les données de la table sur laquelle il fait le tri. Pour ça, il suffit de faire :

CODE
SELECT itemsmagasin .* FROM itemsmagasin,itemsdb WHERE magasin='" . $logged_pj_lieu . "' AND  itemsmagasin.itemid=itemsdb.id ORDER BY itemsdb.type

Oui, c'est exactement ca ...

Mais je me demande, ensuite, dois-je faire ceci:

$arr = mysql_fetch_array($result);
echo $arr["nom"];

ou cela (qui serait moins pratique):

$arr = mysql_fetch_array($result);
echo $arr["itemmagasin.nom"];


Quoi qu'il en soit un gros merci pour votre aide !

Ps.: je savais pas qu'on pouvait faire des 'as' ... très pratique smile.gif


--------------------
user posted image
PMEmail PosterUsers Website
Top
Arckam
Ecrit le : Lundi 17 Janvier 2005 à 09h41
Quote Post


Pro
*

Groupe : Membre
Messages : 137


Il me semble que
CODE

$arr = mysql_fetch_array($result);
echo $arr["nom"];

fera l'affaire smile.gif
PMEmail Poster
Top
« Sujets + anciens | Programmer | Sujets + récents »

Reply to this topicStart new topicStart Poll