begin process at 2012 05 28 14:26:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Calcul d'un rang avec 2 tables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul d'un rang avec 2 tables

samedi 13 août 2011 à 12:48:10 | Calcul d'un rang avec 2 tables

Alpha911

Bonjour,

Je me creuse la tête depuis hier et rien n'en sort ...
j'ai 2 tables comme ce qui suit :
*********** ************
* JOUEUR * * POINTS *
*********** ************
idjoueur *idpoint *
nomjoueur *idjoueur *
... *date *
----------- ************

Quand un joueur gagne 1 point une ligne est ajoutée systematiquement avec l'heure à laquelle il a gagné 1 seul point

Je souhaite faire afficher le rang

A savoir

Rang 1 DAMIEN avec 10 points
Rang 2 SYLVIE avec 6 points
...

je suis passé par pas mal de choses (sql count; creation d'un array_push, distinct)
rien y fait ...

Avez vous une piste ? une commande SQL ?, une solution qui sorte du cadre de sql ?

Merci
samedi 13 août 2011 à 13:55:10 | Re : Calcul d'un rang avec 2 tables

coucou747

Administrateur CodeS-SourceS
Bonjour,

Qu'as tu tenté comme requetes ?

SELECT count(points) AS count, joueur FROM my_table GROUP BY joueur

Ca ne fonctionne pas ?

Cordialement,

Maxime
samedi 13 août 2011 à 14:42:00 | Re : Calcul d'un rang avec 2 tables

Alpha911

Merci pour cette prise en charge,

SELECT count(points) AS count, joueur FROM points GROUP BY joueur
a été essayé mais me retourne aussi une erreur.

Je reprecise un peu comment sont organisés les tables si tu as une idée sachant que je souhaite faire un classement par rang

1 ere table JOUEUR

idjoueur, nomjoueur, prenomjoueur

2nde table POINTS

idpoint, datepoint, idjoueur

------------------------------------------
La table point s'incremente de ma manière suivante :
une ligne = 1 point on a donc la date à laquelle le point est gagné le total du score pour un joueur est généré par une requete de cette maniere

$id = $_GET['id'];
$sqlcalculpoint = mysql_query("SELECT * FROM `POINTS` WHERE `idjoueur` = '$id'");
$sommepointsjoueur = mysql_numrows($sqlcalculpoint);

Le soucis viens du fait que je n'arrive pas à trouver la logique pour sortir à la fin
un tableau ou le joueur est classé 36 ème sur 124 joueurs.

Merci
samedi 13 août 2011 à 15:10:19 | Re : Calcul d'un rang avec 2 tables

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
bien :

SELECT count(points) AS points, id_joueur FROM points GROUP BY is_joueur ORDER BY points DESC


ça doit te donner le classement des joueurs (enfin leur id et leur nombre de points)
Si tu veux le nom, une jointure s'impose, mais ça reste du meme ordre.

SELECT count(points) AS points, id_joueur FROM points LEFT JOIN JOUEUR ON id_joueur GROUP BY is_joueur ORDER BY points DESC

un truc comme ça devrait fonctionner
samedi 13 août 2011 à 17:23:42 | Re : Calcul d'un rang avec 2 tables

Alpha911

Merci pour cette methode,

à present j'ai un tableau avec les joueurs :

SELECT count(points) AS points, id_joueur FROM points GROUP BY is_joueur ORDER BY points DESC

celui qui a le plus de point est en haut comment puis je afficher que ce joueur est 1 er ou 35 eme et uniquement ce joueur
exemple je suis sur la fiche du joueur n14 ($id = 14;) je veux qu'il connaisse uniquement son rang sans savoir qui est au dessu de lui ou en dessous
et sans lui donner le total de ses points.

Joueur 14 est 35 eme sur 114 membres.

Merci en tout ca grace à tes lumières ca progresse dans le bon sens.
samedi 13 août 2011 à 17:44:08 | Re : Calcul d'un rang avec 2 tables

coucou747

Administrateur CodeS-SourceS
hum... la requete est un peu plus complexe je n'ai rien sous la main pour la tester, mais ça devrait ressembler à ça :



SELECT COUNT(*) FROM

(SELECT count(points) AS points FROM points GROUP BY is_joueur
WHERE points >



)

Si c'est trop lent, ou si ça ne fonctionne pas, tu peux le faire en deux étapes :
1 tu recupères
SELECT count(points) AS points FROM points WHERE id_joueur = ID_DU_JOUEUR_COURRANT
qui est le score courrant.

2 tu récupères


SELECT COUNT(*) FROM
(SELECT count(points) AS points FROM points GROUP BY is_joueur
WHERE points > Resultat_precedent )

ça peut fonctionner.
samedi 13 août 2011 à 17:45:11 | Re : Calcul d'un rang avec 2 tables

coucou747

Administrateur CodeS-SourceS
Dsl, la requete a disparu...


SELECT COUNT(*) FROM

(SELECT count(points) AS points FROM points GROUP BY is_joueur
WHERE points >

(SELECT count(points) AS points FROM points WHERE id_joueur = ID_DU_JOUEUR_COURRANT)

)
samedi 13 août 2011 à 19:21:47 | Re : Calcul d'un rang avec 2 tables

Alpha911

Merci,

Je n'arrives pas à le faire tourner. Mais bon la piste du

SELECT count( * ) AS points, idjoueur FROM points GROUP BY idjoueur ORDER BY `point` DESC

est une très bonne piste je pense qu'il doit exister en php cette fois ce qu'il faut pour afficher un enregistrement
par l'id avec une numerotation sans augmenter la charge de la requete sql.

Qu'en penses tu ?

je pense à ajouter dans la boucle while une condition d'affichage il me reste plus qu'à trouver ce qui me permet de numeroter
le resultat en php (si toutefois ceci est faisable).
samedi 13 août 2011 à 19:37:23 | Re : Calcul d'un rang avec 2 tables

Alpha911

Je pense à une chose comme ca :

$requete = ("SELECT count( * ) AS points, idjoueur FROM points GROUP BY idjoueur ORDER BY `point` DESC");

while($sqlfix = mysql_fetch_array($requete))
{
if($sqlfix == $idjoueur)
{
fonction print_r($sqlfix)
}
}

ceci est approximatif pour le moment c'est la piste que je suis ....sachant que print_r donne la numerotation de l'affichage ...
Un avis ?
samedi 13 août 2011 à 19:40:19 | Re : Calcul d'un rang avec 2 tables

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
un truc comme ça ?

$classement = 1;
while($sqlfix = mysql_fetch_array($requete))
{

if($sqlfix == $idjoueur)
{ print_r($sqlfix) ;
echo $classement;
}

$classement ++;

}



Si tu pouvais donner l'erreur SQL, ça pourrait etre utile.

1 2

Cette discussion est classée dans : points, sql, tables, calcul, rang


Répondre à ce message

Sujets en rapport avec ce message

SQL > Limit qui affiche mal les nombres... [ par testuo77 ] Bonjour,Je fait un petit jeux tout bête, alors dés qu'on gagne, on est mis dans une table des gagnants.Table de ce type :---IDpseudopoints---Ensuite j Création de Tables via fichier .sql [ par LePhenol ] Bonjour, Je suis en train de créer un install.php pour installer un petit portail que j'ai programmé. J'en suis à la création des Tables SQL dans ma B Recherche multi-tables [ par JoJo738 ] Hello, J'ai un petit probleme. Je fais un moteur de recherche multi-tables et je n'arrive pas à savoir de quel table vient l'enregistrement. Et il gar lister table de la sql [ par agenceacapulco ] Bonjour depuis le debut du week end je cherche un script me permettant de faire une liste deroulante dont le contenu est l'ensemble des table de ma ba creation de tables tables SQL [ par alexlord ] dans le mode d'emploi d'un forum c'est de creer des tables SQL a l'aide du fichier creation_tables.sql j'ai easy php et y'a un dossier my sql comment Calcul de deux champ avec résultat dans un autre champ [ par arambasic ] Voici ma question :je dispose de plusieurs champs dans la table dont 3 qui sont importants pour ma questionle champ points_precle champ points_moisle probleme de SQL [ par kangoo75 ] Salut à tous, voila mon petit probleme, j'ai 1 table qui represente une arborsence de repertoire "virrtuel" et une autre table "d'objet".J'aimerais re [mysql]requête jointure sur 3 tables et une clé de liaison [ par Sedilbur ] Bonjour à tous, Je viens aujourd'hui à vous pour vous demander de l'aide car je bloque au niveau d'une rêquete SQL.Je vous expose la situation pour mi Requette SQL ds 2 tables [ par younes371 ] Bonjour, je travail sur MySQL, j'ai deux tables : table1(id_table1,nom) table2(id_table2,nom,prenom,adresse) dont : table2 contient des informations s Amélioration requête SQL [ par nounours21_6 ] Bonjour tout le monde,j'ai un petit soucis de requête SQL,j'ai une table de membres que je mets à jours régulièrement afin de créer un graphique d'évo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales