Разделить и погрузить данные из базы данных PHP

Я пытаюсь преобразовать эти данные из базы данных «[29,0,246]». Это данные, которые он извлекает из одного из столбцов пользователя. Это похоже на то, как долго они были включены в минутах, а 3 значения данных измеряют для разных частей. Мне было интересно, сможете ли вы разделить их на 3 разных элемента и преобразовать в часовой формат. MySQL и PHP

    if ( isset( $_POST['submit-search'] ) ) {
        $search = mysqli_real_escape_string($conn, $_POST['search']);
        $sql = "SELECT * FROM players WHERE name LIKE '%$search%'";
        $result = mysqli_query($conn, $sql);
        $queryResults = mysqli_num_rows($result);

        if ( $queryResults > 0 ) {
            while ($row = mysqli_fetch_assoc($result)) {
                echo "<div class='article'>
                <h1>".$row['name']."</h1>
                <h2>". "Last connected at " .$row['last_seen']."<h2>
                <h2>". "Cash:  " .$row['cash']."<h2>
                <h2>". "Bank Account:  " .$row['bankacc']."<h2>
                <h2>". "Time played: " .$row['playtime']."<h2>
                </div>";
            }
        } else {
            echo "There are no results matching your search";
        }
    }

Вы не думали заглянуть в руководство? explode()

RiggsFolly 17.07.2018 14:22

Вам следует нормализовать БД. Не просто исправляйте это для этого процесса, вы снова столкнетесь с этой проблемой.

user3783243 17.07.2018 14:23

Сколько ожидается ли исследовательская работа от пользователей Stack Overflow? SO должно быть вашим последним портом захода, а не первым

RiggsFolly 17.07.2018 14:23

Сначала вам нужно сообщить нам, какие цифры

Andreas 17.07.2018 14:23

Ваш сценарий широко открыт для Атака с использованием SQL-инъекции Даже если вы избегаете ввода, это небезопасно! Используйте подготовленные параметризованные операторы в API MYSQLI_ или PDO

RiggsFolly 17.07.2018 14:25
[29,0,246] выглядит действительным массивом JSON @RiggsFolly explode(), возможно, не лучшая функция для обработки этих данных json_decode() - лучшая функция для этого. К сожалению, более низкие версии MySQL имеют очень незрелую обработку JSON. MySQL 8.0 имеет хороший оператор JSON_TABLE, который каким-то образом работает как функция PHP json_decode ().
Raymond Nijland 17.07.2018 14:35

@RaymondNijland Совершенно верно, я это пропустил. Ответ @KiKO мне нравится, но, похоже, не получил никаких голосов. Интересно, почему? Однако Explode также приведет к появлению OP, в то время как JSON может сбить с толку. Но я согласен, что использование json_decode(), похоже, мне подойдет. Предполагая, что все данные в этом столбце выглядят так

RiggsFolly 17.07.2018 14:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
7
151
1

Ответы 1

Вот строка, которую вы написали за целые часы:

echo round(array_sum(json_decode("[29,0,246]"))/60,2).' hours';

Это похоже на массив json, следовательно, json_decode(), затем мы суммируем полученный массив, делим на 60 минут и округляем.

Результат: 4.58 hours.

Предполагается, что строка всегда как минимум содержит [].

«Предполагается, что строка всегда, по крайней мере, содержит []». Технически здесь предполагается, что данные представляют собой действительный массив JSON, содержащий только числа .. По-прежнему +1 для ответа ..

Raymond Nijland 17.07.2018 14:48

@RaymondNijland Ну, вопрос говорит, что будут числа, а не сколько. Требование наличия [] делает его допустимым массивом json.

KIKO Software 17.07.2018 14:50

Да, в основном мы говорим о вопросе одно и то же, но только разные версии

Raymond Nijland 17.07.2018 14:54

Другие вопросы по теме