Извеждане на номер

Ev0luti0N

Registered
Можете ли да ми кажете как мога да изведа номера на един потребител по точки.
100 потребителя имат точки 50,40,30,30,20,10,5 и т.н как да изведа кой на кое място се намеря по точки.
Пример: тоя с 50 точки на първо място с 40 на второ с 30 на трето другия с 30 на четвърто т.н
 
Код:
$query=mysql_query("SELECT * FROM `table` ORDER BY `points` DESC") or die(mysql_error());
while ($row=mysql_fetch_assoc($query))
{
$i++;
echo "$i - $row[username]";
}
Нещо такова трябва да стане, смисъл създаваш в цикъла една променлива i като я инкрементираш с 1 в самият цикъл, при всеки намерен резултат то ще увеличава с 1 и ще връща съответният номер..
 
Replace каза:
SET @position := 0;
SELECT @position := @position + 1 AS position,`score` FROM `table` ORDER BY `score` DESC

Извинявай може ли да ми го дадеш като заявка, че за първи път виждам такива неща в заявката и малко ми е объркано :]
 
kulov каза:
Код:
$query=mysql_query("SELECT * FROM `table` ORDER BY `points` DESC") or die(mysql_error());
while ($row=mysql_fetch_assoc($query))
{
$i++;
echo "$i - $row[username]";
}
Нещо такова трябва да стане, смисъл създаваш в цикъла една променлива i като я инкрементираш с 1 в самият цикъл, при всеки намерен резултат то ще увеличава с 1 и ще връща съответният номер..
Да, аз искам да изкарам само на 1 потребител смисъл в профила му не на всички :]
 
Тоест, на тебе май не ти трябваше точно това.
Ето втори шанс:
mysql_query("SET @position := 0")or die(mysql_error());
$query = mysql_query("SELECT * FROM (SELECT @position := @position + 1 AS pos,`id`,`score` FROM `table` ORDER BY `score` DESC) table
WHERE `id` = '$id'")or die(mysql_error());
print_r(mysql_fetch_object($query));
 

Back
Горе