Помощ за класация!!!

afreto

Registered
Здравейте. Имам един проблем който не мога да разареша. Гледах из други сайтове навръзвах кодове но все не ми се получава. Та проблема е следния. имам онлайн игра.искам да направя класация на потребителите според нивото (с това се справям , както и с страницирането на резултатите) но искам отпред да ми показва на кое място е.
Пример:
№ | име | ниво
--------------------
1 | пешо | 20
2 | иван | 15
3 | драган | 8
__
пред. {1},2,3 следв.

Също така да има една от опциите или в края на таблицата преди номерата на страниците да показва на кое място съм АЗ, като това да го показва на всяка страница
Пример:
№ | име | ниво | № | име | ниво
-------------------- | --------------------
1 | пешо | 20 | 10 | пешо | 7
2 | иван | 15 | 11 | иван | 5
3 | драган | 8 | 12 | драган | 4
... | ...
28 | АЗ | 2 | 28 | АЗ | 2
__ | __
пред. {1},2,3 следв. | пред. 1,{2},3 следв.

или да има бутон "къде съм аз" и като се кликне на него да показва таблица например от 10 играча и аз да съм по средата
Пример:
№ | име | ниво
--------------------
26 | пешо | 5
27 | иван | 3
28 | АЗ | 2
29 | пешо | 1
30 | иван | 1
__
пред. 1,{2},3 следв.


естествено трябва и да се помисли при еднакво ниво да подрежда по друг критерии но това в последствие.
Надявам се сте ме разбрали и да можете да ми помогнете
 
Потърсих във форума и има мнооого подобни теми. Намерих един код който може да ти е от полза. Със малко промяна може да направиш това което искаш. :)

Кода ти показва на коя позиция си в класацията:
PHP:
$mypos = mysql_result(mysql_query("SELECT точки FROM потребители WHERE user='$user'"),0);
$pos = mysql_result(mysql_query("SELECT COUNT(id) FROM потребители WHERE точки >= '$mypos'"),0);
echo " Вие сте на $pos място в класацията :-) ";
 
Genius_m каза:
Потърсих във форума и има мнооого подобни теми. Намерих един код който може да ти е от полза. Със малко промяна може да направиш това което искаш. :)

Кода ти показва на коя позиция си в класацията:
PHP:
$mypos = mysql_result(mysql_query("SELECT точки FROM потребители WHERE user='$user'"),0);
$pos = mysql_result(mysql_query("SELECT COUNT(id) FROM потребители WHERE точки >= '$mypos'"),0);
echo " Вие сте на $pos място в класацията :-) ";
Благодаря ти, но вече се справих по следния начин.

PHP:
$x = 0; //почваме от нулева позиция
while ($row = mysql_fetch_array($result)) {
    $x++;
    if($row['user_id'] == $_SESSION['user_id'] {
         $_SESSION['my_position'] = $x; //на което превъртане, моето ID съвпадне с това базата данни при такова подреждане - това е моят ранк
         break; //вече може да спреш търсенето
    }
}
echo 'Моята позиция е ' . $_SESSION['my_position'];

Сега обаче изникна още един въпрос. как да подрежда по друг критерии (например: опит)ако са едно и също ниво.
 

Back
Горе