Rank-Platzierung errechnen

DarkRaver

Erfahrenes Mitglied
Hallo,
ich habe eine Tabelle voll mit Einträgen. Jeder Eintrag hat eine Spalte namens "userID" und "Activity". Nun möchte ich z.B. für einen User mit der UserID 5 abfragen, welchen Rank er einnimmt. Wie kann ich dies aus den Activity-Points errechnen?
 
Ok, das peil ich gerade noch nicht so ganz.
Ich möchte, dass ich den Rank von einem User rausbekomme. Also kleines Beispiel:
User A - 200 Punkte
User B - 500 Punkte
User C - 400 Punkte
User D - 300 Punkte
So, und nun möchte ich gerne einen MySQL-Command wissen, wie ich errechnen kann dass z.B. User C den 3. Platz einnimmt.
 
Order By Punkte ASC / DESC

Und dann in der Reihenfolge ausgeben lassen und eine Variable mit Hochrechnen

PHP:
$s = "SELECT * FROM TABELLE ORDER BY PUNKTE ASC"
$m = mysql_query($s);

$i = 1;
while($rs = mysql_fetch_array($m)){
echo "Platz ".$i". = ." $rs[tabelle_user]." mit ".$rs[tabelle_punkte]." Punkten.<br>";
$i++;
}

Oder willst du es unabhängig von anderen Usern?

Brauche etwas mehr informationen ;)

Hast du vlt schon ein PHP scipt etc?
 
Könnte es damit nicht auch funktionieren:

SQL:
SELECT (COUNT(`user`) + 1) AS rang FROM rang WHERE punkte > (SELECT punkte FROM rang WHERE `user` = 'C')

Wobei User "C" trotzdem doch auf Platz 2 liegt und nicht auf Platz 3! Für den festen Wert "C" kannst du dann ja eine Variable einsetzten welche den entsprechenden User darstellt.
 
Zuletzt bearbeitet:
MySQL Rownum (Zeilennummer)

Das ergibt:
SQL:
SELECT
	rang
FROM
	(
		SELECT
			@rownum := @rownum + 1 AS rang,
			user
		FROM
			(SELECT @rownum := 0) AS vars,
			rank
		ORDER BY
			punkte
	) AS r
WHERE
	user = 'C';

@tombe
C ist auf Platz 3: A-D-C-B
 
Zuletzt bearbeitet von einem Moderator:
Ihr zählt aufsteigend?

Ich hätte gesagt der mit den meisten Punkten (User B mit 500) ist auf Rang 1 und User C ist mit 400 Punkten auf Platz 2.
 
OK, stimmt - dann muss man in meinem meinem Beispiel noch den ORDER mit DESC ergänzen....
 
Zurück