Извлечь данные из таблицы, затем отобразить их в порядке убывания

0

У меня есть следующая таблица в моей базе данных нажмите для просмотра

Я ищу, чтобы найти всех, чья user_group является "членом", а затем помещать свои оценки в массив и печатать имена в порядке убывания в зависимости от их рейтинга. Таким образом, в приведенном примере будет выводиться ted67945<br>ted67942.

У меня есть этот код

function getInfo($info, $given_username) { // This is only used to get the rating of the given user
  require($_SERVER["DOCUMENT_ROOT"]."/movies/scripts/db.php");
  $result = mysqli_query($conn, "SELECT ".$info." FROM members WHERE username='$given_username'");
  while ($row = mysqli_fetch_array($result)) { // for each member
    return $row[$info];
  }
}
$result = mysqli_query($conn, "SELECT username FROM members WHERE user_group='member'") or die(mysql_error());
$ratings = Array();
while ($row = mysqli_fetch_array($result)) { // for each member
  $name = $row['username'];
  if(!empty($name)) {
    array_push($ratings, getInfo("rating", $name)); // This puts all people ratings in group "member", into an array
  }
}
rsort($ratings);
foreach($ratings as $x) {
  echo $x . "<br>";
}

Это, очевидно, выводит числа. Как я могу использовать это для вывода имен на основе их рейтинга?

  • 0
    Я не могу получить имя, используя рейтинг, потому что два или более людей могут иметь одинаковый рейтинг
  • 0
    ВНИМАНИЕ : При использовании mysqli вы должны использовать параметризованные запросы и bind_param для добавления пользовательских данных в ваш запрос. НЕ используйте интерполяцию или конкатенацию строк для достижения этой цели, поскольку вы создали серьезную ошибку внедрения SQL . НИКОГДА не помещайте $_POST , $_GET или любые пользовательские данные непосредственно в запрос, это может быть очень вредно, если кто-то попытается использовать вашу ошибку.
Показать ещё 4 комментария
Теги:

1 ответ

0
Лучший ответ

Почему вы не можете использовать ORDER BY в запросе SQL?

SELECT username FROM members WHERE user_group='member' ORDER BY rating DESC;

Это сортирует ваши данные по рейтингу в порядке убывания. См. Больше.

  • 0
    Я понятия не имел, что это была вещь! Спасибо! Я приму ответ, как только это позволит мне (4 минуты)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню