Сортировка таблицы по убыванию SQL - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь составить таблицу лидеров для игры, в которую я играю.Я сделал сайт, который отображает статистику из игры.Я пытаюсь сделать так, чтобы таблица могла быть отсортирована по убыванию.Но это противоположно тому, что я пытаюсь сделать.Если у вас есть какие-либо вопросы, пожалуйста, задавайте и заранее спасибо.

        <?php
    // Database output
    $servername = "";
    $username = "";
    $password = "";
    $dbname = "";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }

    //Plaatsen voor select option element HTML

    $orderBy = array('Name', 'Kills', 'Deaths', 'KDR');

    $order = 'Name';
    if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) {
        $order = $_GET['orderBy'];
    }

    $query = 'SELECT Name, Kills, Deaths, KDR FROM GlobalPlayerData ORDER BY '.$order;

    $result1 = mysqli_query($conn, $query);

    $conn->close();
    ?>
    <table class="table table-striped " >
      <thead class="thead-dark">
      <tr>
        <th scope="col"><a href="#">Head</a></th>
        <th scope="col"><a href="?orderBy=Name">Player name</a></th>
        <th scope="col"><a href="?orderBy=Kills">Kills</a></th>
        <th scope="col"><a href="?orderBy=Deaths">Deaths</a></th>
        <th scope"col"><a href="?orderBy=KDR">KDR</a></th>
      </tr>
    </thead>
  <?php while($row1 = mysqli_fetch_array($result1)):;?>

  <?php echo '<tr><td>'.'<img src="https://minotar.net/avatar/'.$row1[0].'/50"></td><td>'.$row1[0].'</td><td>'.$row1[1].'</td><td>'.$row1[2].'</td><td>'.$row1[3].'</tr>';?>

  <?php endwhile;?>
  </table>

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Что оценивает $query?

Я вижу запрос здесь: SELECT Name, Kills, Deaths, KDR FROM GlobalPlayerData ORDER BY '.$order

Так скажем, если выбрано Name, запрос будет: SELECT Name, Kills, Deaths, KDR FROM GlobalPlayerData ORDER BY Name

Если вы не укажете ключевое слово для упорядочения, то по умолчанию ORDER BY будет иметь возрастающий порядок: https://www.geeksforgeeks.org/sql-order-by/

Вам нужно будет указать DESC для спуска, чтобы сделать из него порядокот высшего к низшему.Итак, ваша $query переменная становится:

$query = 'SELECT Name, Kills, Deaths, KDR FROM GlobalPlayerData ORDER BY '.$order.' DESC';

0 голосов
/ 01 февраля 2019

Попробуйте изменить переменную $ query на

'SELECT Name, Kills, Deaths, KDR FROM GlobalPlayerData ORDER BY ' . $order . ' DESC';

DESC вернет результаты в порядке убывания, основываясь на значении переменной $ order.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...