Как SQL запрос получить в JSON?

Ссылка скопирована
1 ответ

Добрый вечер.

Как можно получить ответ SQL в JSON, например такого?

SELECT `cat_id`,`title` FROM `product`;

Дополнительно:

echo json_encode($mysqli->query("SELECT `cat_id`,`title` FROM `product`")->fetch_all(MYSQLI_ASSOC));

echo json_encode($mysqli->query("SELECT `cat_id`,`title` FROM `product`")->fetch_all(MYSQLI_ASSOC));

?

  • 1. Уточните - JSON нужно сформировать на стороне SQL-сервера или на стороне PHP?
    2. Укажите точно используемую СУБД. Включая точную версию.
    3. Покажите пример вывода показанного запроса (2-3 записи) и желаемый для именно этих данных выходной JSON.
  • FanatPHP, Спасибо большое за помощь. Добавьте в виде ответа, выберу правильным тоже.
  • Я стараюсь по таким мелким поводам ответы не писать, потом сложно искать действительно полезные
  • $sql = 'SELECT `cat_id`,`title` FROM `product`;';  $res = $mysqli->query($sql); $rows = $res->fetch_all(MYSQLI_ASSOC); //ответ из базы  echo json_encode($rows); // json

    $sql = 'SELECT `cat_id`,`title` FROM `product`;'; $res = $mysqli->query($sql); $rows = $res->fetch_all(MYSQLI_ASSOC); //ответ из базы echo json_encode($rows); // json

    • mysqli_close лишнее, а вот обратные апострофы убирать из запроса специально не следовало.
      этот запрос конечно и без них сработает, но если автор вопроса пишет более правильный код, то не надо его ухудшать
    • FanatPHP, Вы правы
    • Володимир Паламар, Спасибо за помощь.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Игорь Волков Ответ

    Для того чтобы получить результат SQL запроса в формате JSON, вы можете воспользоваться функцией JSON_ARRAYAGG в MySQL или функцией JSON_OBJECTAGG в PostgreSQL.

    Пример для MySQL:

    SELECT JSON_ARRAYAGG(JSON_OBJECT('id', id, 'name', name)) AS result
    FROM your_table;

    SELECT JSON_ARRAYAGG(JSON_OBJECT('id', id, 'name', name)) AS result FROM your_table;

    Здесь мы используем функцию JSON_ARRAYAGG для создания массива объектов JSON, где каждый объект содержит поля id и name из таблицы your_table.

    Пример для PostgreSQL:

    SELECT JSON_OBJECTAGG(id, to_jsonb(your_table)) AS result
    FROM your_table;

    SELECT JSON_OBJECTAGG(id, to_jsonb(your_table)) AS result FROM your_table;

    Здесь мы используем функцию JSON_OBJECTAGG для создания объекта JSON, где ключами будут значения поля id, а значениями будут объекты JSON, содержащие все поля таблицы your_table.

    Оба этих запроса вернут результат в формате JSON, который можно использовать в вашем приложении или веб-сервисе. Не забудьте заменить your_table на имя вашей таблицы и добавить необходимые условия и фильтры для получения нужных данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно