Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Position d'un champ dans une table
Auteur Message
Christophe Hors ligne
Membre

Messages : 35
Inscription : Mar 2008
Réputation : 1
Message : #1
[PHP] Position d'un champ dans une table
Bonjour,

Je cherche à récupérer la position d'un champ qui se nomme point dans ma table des membres afin de savoir quelle est la place du membre en fonction de son nombre de points, j'ai essayer un select count mais sa ne fonctionne pas bien, il y a une grande différence entre la position initiale et le résultat donné j'ai cherché à droite et gauche pour voir un peu si je pouvais trouver mais visiblement je ne suis pas le seul à pêcher sur ce sujet.

j'ai essayé cela :

<--code php
$positgeneral = mysql_query('SELECT COUNT((id)+1) as position FROM infosjeu WHERE points>="'.$points.'" AND pseudo<="'.addslashes($_SESSION['pseudo']).'"') or die(mysql_error());
-->

Voilà si quelqu'un a quelque chose de mieux à me proposer je suis preneur.

Merci à la communauté 2
(Ce message a été modifié le : 10-25-2008 08:38 PM par Sephi-Chan.)
10-24-2008 12:53 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oualala Hors ligne
Membre

Messages : 123
Inscription : Feb 2007
Réputation : 0
Message : #2
RE: [php] Position d'un champ dans une table
Ben tu fais une boucle while si j'ai bien compris 16 (si tu veux faire un classement)

[Image: bannieremagus.jpg]
10-24-2008 01:25 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Meardon Hors ligne
Membre

Messages : 32
Inscription : Sep 2006
Réputation : 0
Message : #3
RE: [php] Position d'un champ dans une table
Bonjour,

Tu peux combiner des requêtes, il suffit alors de compter le nombre de joueurs ayant un classement supérieur au tien :

$select = "SELECT count(1) FROM infosjeu WHERE points > (SELECT score FROM table_score WHERE pseudo<='addslashes($_SESSION['pseudo'])'")

Attention mon code n'est peut-être pas bon, mais tu vois l'idée 34

EDIT :

oualala a écrit :Ben tu fais une boucle while si j'ai bien compris 16 (si tu veux faire un classement)

Ca peut marcher pour faire un classement complet, mais je crois que Christophe ne cherche qu'à récupérer le classement d'un seul joueur. Dans quel cas une boucle while s'avèrerait trop coûteuse.

Stargate Civilizations : [Image: barre-a-44.gif]
(Ce message a été modifié le : 10-24-2008 01:28 PM par Meardon.)
10-24-2008 01:25 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Melimelo Hors ligne
Membre

Messages : 292
Inscription : Sep 2008
Réputation : 3
Message : #4
RE: [php] Position d'un champ dans une table
j'ai vraiment pas compris ce que tu voulais faire ...

En gros tu veux connaitre le classement de ton joueur en fonction de ces point , c'est ca ?
10-24-2008 01:28 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Zamentur Hors ligne
Membre

Messages : 549
Inscription : Jan 2007
Réputation : 8
Message : #5
RE: [php] Position d'un champ dans une table
Code PHP :
$pseudo=mysql_real_escape_string($_SESSION['pseudo']);
$sql=sprintf("SELECT COUNT(*) FROM `infosjeu` WHERE `points` <=(SELECT `points` FROM `infosjeu` WHERE `pseudo`='%s')"$pseudo);
$req=mysql_query($sql) or die(mysql_error()); 

NB il est possible de cinder en 2 la requete vu qu'il ya cette sous requete...

Code PHP :
$pseudo=mysql_real_escape_string($_SESSION['pseudo']);
$sql=sprintf("SELECT `points` FROM `infosjeu` WHERE `pseudo`='%s'"$pseudo);
$req=mysql_query($sql) or die(mysql_error());
$ligne=mysql_fetch_row($req);

$sql=sprintf("SELECT COUNT(*) FROM `infosjeu` WHERE `points` <='%d'"$ligne[0]);
$req=mysql_query($sql) or die(mysql_error());
$ligne=mysql_fetch_row($req);
$place=$ligne[0]; 

Algol project un 0% qui as du goût 10
10-24-2008 01:29 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Meardon Hors ligne
Membre

Messages : 32
Inscription : Sep 2006
Réputation : 0
Message : #6
RE: [php] Position d'un champ dans une table
@Zamentur : Plagiat ! 55

Stargate Civilizations : [Image: barre-a-44.gif]
10-24-2008 01:36 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
lemouix Hors ligne
Membre

Messages : 115
Inscription : Aug 2008
Réputation : 0
Message : #7
RE: [php] Position d'un champ dans une table
Vive les helpers... c'est tout ce que j'ai à dire 10

Développement du moteur de jeux php en cours:
- Définition du cahier des charges: 70 %
- Diagramme UML de classes: 40 %
- Code: 5 %
10-24-2008 03:26 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Christophe Hors ligne
Membre

Messages : 35
Inscription : Mar 2008
Réputation : 1
Message : #8
RE: [PHP] Position d'un champ dans une table
Bonjour à vous,

Merci à toi, sa fonctionne bien par contre j'ai essayé d'ajouté des conditions du style niveau="1" actif="oui" et sa ne fonctionne plus, sa déraille complètement de même que j'aimerais qu'il me traites les pseudo par ordre ASC afin que il y ait départage quand il y ais égalité.

C'est la première fois qu'une requête me résiste autant... Merci a tous ceux qui auront des idées sur cette ajout de conditions.

Merci à vous.
10-27-2008 03:44 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Argorate Hors ligne
Membre

Messages : 329
Inscription : Aug 2006
Réputation : 1
Message : #9
RE: [PHP] Position d'un champ dans une table
Bonjour, voilà se que je propose

SELECT COUNT(*) AS position
FROM infosjeu
WHERE score > (SELECT score FROM infosjeu WHERE id = $id_joueur)

Je ne comprends pas vraiment le problème, on fait une sous-requête sélectionnant le score du joueur X, et la requête principal compte le nombre de tuples (d'enregistrements) de la table résultante qui ne contient que les tuples ayant un score plus élevé que le joueur X... (Je n'ai pas compté ceux ayant le même score, puisque a mon sens ils sont tous égaux, donc a la même place.)

PS : Je te conseil de travailler avec l’id du jouer et non son pseudo…

EDIT: si tu as bien suivit ma requete ne te renvoi que le nombre de joueur superieur au joueur X (en therme de score), donc si tu veux la place du joueur X, il te faudra faire position+1 dans ton code.

Argo.

Projet en cour: 55% de codé. (création des ressources sur la map/inventaire en cour).
(Ce message a été modifié le : 10-28-2008 03:58 PM par Argorate.)
10-28-2008 03:55 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 



ContactJeuWeb (JeuPHP) - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS