Получить данные MySQL в формате PHP в формате 1: 2: 3: 4 - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь вытащить данные на PHP, чтобы создать простую страницу статистики, в большинстве моих баз данных статистика разделена на отдельные столбцы, поэтому я могу это сделать:

    <tbody>
        <?php
        mysqli_select_db($connect, $database);;

        $sql = "SELECT name,kills FROM global_stats ORDER BY kills DESC LIMIT 5";

        $result = mysqli_query($connect, $sql);

        $count = 1;

        while ($row = mysqli_fetch_array($result)) 
        {
            echo "<tr> <td>" . $count . "</td>";
            echo "<td>" . $row['name'] . "</td>";
            echo "<td>" . $row['kills'] .  "</td> </tr>";
            $count++;
        }
        ?>
    </tbody>

Хотя с в одной из моих баз данных данные сохраняются странным образом, где все данные для каждой статистики находятся в одной таблице, разделенной: - есть ли способ получить все данные, например, во второй области, и имя пользователя, и затем отсортируйте только вторую область и выведите всего 5 результатов.

enter image description here

1 Ответ

0 голосов
/ 27 мая 2020

Этот запрос:

SELECT 
  name,
  CONVERT( SUBSTRING_INDEX( SUBSTRING_INDEX(stats, ':', 2), ':', -1), INTEGER) as kills
FROM
  table
ORDER BY kills DESC
LIMIT 5

Преобразует второе поле и вернет первые 5 - я не знаю, откуда взялось имя, потому что его нет на вашем снимке экрана, поэтому может потребоваться дополнительная работа

Работает с двойным использованием индекса подстроки. Первое использование (внутреннее) означает «считать вперед до второго разделителя, начиная слева, и использовать его в качестве конечной точки для подстроки», а затем второе использование (внешнее) означает «считать в обратном направлении до первого разделителя и использовать это как начальная точка для подстроки

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