2016-12-17 6 views
1

У меня есть эта установка функции для извлечения пользователя занимаетРанжирование системы с использованием MySQLi и PHP (множественные проверки)

function rank($user) { 
    $q = query("SELECT * FROM members ORDER BY level DESC"); 
    $rank = 0; 
    while($row = mysqli_fetch_array($q)) { 
     $rank++; 
     if($row['username'] == $user) { 
      return $rank; 
     } 
    } 
} 

Пожалуйста, обратите внимание: запрос() это функция, которая автоматически запрашивает базу данных.

Это возвращает ложь, что я хотел это:

username level money exp id 
john  3  2  213 4 
bob   3  132  23  5 
mark  4  3423  2  6 

Я хочу, чтобы сортировать в зависимости от уровня, но если два пользователя (john и bob) имеют один и тот же уровень, то прибегают на exp, затем на деньги, затем на идентификатор пользователя.

ответ

1

Вы можете дать несколько выражения в предложении order by:

SELECT * FROM members ORDER BY level DESC, exp DESC, money DESC, user_id DESC 
+0

запроса ("SELECT * FROM членов ORDER BY DESC уровня, деньги DESC, ID DESC"); Этот запрос, похоже, не работает. – Phil

+0

@PhilGibson Вам нужно быть более конкретным, чем «не работать» – Mureinik

+0

@PhilGibson И вы пропустили «exp DESC» в предложении 'order by'. – Mureinik

Смежные вопросы