JeuWeb - Crée ton jeu par navigateur
SQL - Requête de classement - 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 : SQL - Requête de classement (/showthread.php?tid=2688)



SQL - Requête de classement - jldbaro - 16-06-2008

J'essaye d'élaborer un Top 5 (sur ma page index)

Voici la requete sql que j'ai...

Code PHP :
<?php 
SELECT Nom
, Prenom, joueur.Id, membre.Date_inscription as dateinscrip FROM joueur, membre ORDER BY joueur.Id DESC LIMIT 0,50

Résultat:

Red Attack 38 2008-06-16
Red Attack 38 2008-06-16
Red Attack 38 2008-06-16
Red Attack 38 2008-06-16
Red Attack 38 2008-06-16
Red Attack 38 2008-06-16
Red Attack 37 2008-06-16
Red Attack 37 2008-06-16
Red Attack 37 2008-06-16
Red Attack 37 2008-06-16
Red Attack 37 2008-06-16
Red Attack 37 2008-06-16

--> J'ai une répétition de joueurs.


Code PHP :
<?php 
SELECT Nom
, Prenom, joueur.Id FROM joueur ORDER BY joueur.Id DESC LIMIT 0,50

Résultat:

Red Attack 38
Red Attack 37
Red Attack 36
Red Attack 35
Red Attack 34
Red Attack 33


--> Fonctionne mais j'ai besoin du champs membre.Date_inscription

Quelqu'un aurais une idée du comment et du pourquoi?

Merci d'avance,

JLOUIS


RE: requete SQL - Sephi-Chan - 17-06-2008

Pourquoi avoir une table membre et une table joueurs ? Pourquoi ne pas stocker ça en une table ?
Peux-tu donner la structure des tables que tu utilises ?


Sephi-Chan


RE: requete SQL - Roworll - 17-06-2008

Indépendamment de la question posée au dessus, tu as une duplication des joueurs car tu fais un produit entre tes deux tables.

La structure (schématisée) de ta requête est
Code PHP :
<?php 
SELECT
* FROM Table1, Table2
Ceci va te renvoyer toutes les couples possibles entres les lignes de Table1 et Table2.
Donc, si tu as 10 lignes dans Table1 et 30 lignes dans Table2, le résultat fera 10*30 = 300 lignes.

Ce qu'il te faut est une jointure (ou à défaut une clause WHERE) faisant le lien entre tes deux tables.
Le résultat devrait ressembler à
Code PHP :
<?php 
SELECT
* FROM Table1 INNER JOIN Table2 ON Table1.champ_lien=Table2.champ_lien
Encore une fois, c'est très schématisé mais si tu n'y connais rien, tu peux facilement trouver des informations la dessus sur de nombreux sites web.


RE: requete SQL - Anthor - 17-06-2008

GROUP BY id , non ? ^^