Преобразование результатов запроса MySQL в JSON

Говорят, MySQL сервер начиная с версии 5,7 поддерживает преобразование данных в JSON.
Но что же делать, когда версия сервера не такая продвинутая? Попробуем создать вывод в JSON самостоятельно.

Для этого запрос
SELECT
  collname,
  colldesc
FROM collection
WHERE productid = 1585546
изменим на
SELECT
  CONCAT("[",
          GROUP_CONCAT(
               CONCAT("{collname:'",collname,"'"),
               CONCAT(",colldesc:'",colldesc),"'}")
     ,"]") AS collection_json
FROM collection
WHERE productid = 1585546

Результатом запроса будет строка JSON
[
  {
    collname: 'Название 1',
    colldesc: 'Описание 1'
  },
  {
    collname: 'Название 2',
    colldesc: 'Описание 2'
  }
]

Use this ;)

Экспорт данных из таблицы ExtJS Grid в таблицу Excel

Как сделать экспорт данных из таблицы ExtJS Grid в таблицу Excel?

Данное решение экспериментальное и имеет место для небольших, одностраничных, таблиц типа xtype:'grid' с хранилищем типа xtype:'store'.

Для реализации функционала, нам понадобится:
  • Библиотека ExtJS — JavaScript фреймворк. Если вы слышите это впервые, статья не будет полезна.
  • PHP сервер весрии 5+
  • PHPExcel — библиотека для создание Excel документа. Ссылка на сайт производителя.


Grid таблица
Для примера берём простейшую таблицу с тремя колонками ID, Имя, Дата. В данном примера поля имеют тип string (текст).


Так как статья получилась длинная, читайте продолжение под катом...

Преобразование поля LineString в массив точек JSON

Преобразование поля LineString в массив точек JSON, или как хранить координаты точки в MySQL

Недавно обнаружил в MySQL возможность хранить координаты ГЕО точек. Более подробно про функции для работы с геометрическими функциями в MySQL можно прочитать на страницах руководства:

Я не буду в этой статье описывать все функции для работы с типом LineString, так как там нет ничего сложного и достаточно информации в официальном руководстве. Хочу же более детально остановиться на конкретной задаче, а именно:

«Как из поля с типом LineString получить массив координат в формате JSON».
Для чего это нужно?
Например, есть таблица с маршрутами, каждая строка — это маршрут, в строке есть поле points типа LineString, в котором хранятся все координаты точек маршрута и нужно получить массив этих точек в читаемом формате.

Вариант решения предлагаю следующий:
  1. Создадим функции в MySQL для преобразования LineString в JSON в формате [{lat: val1, long: val2}, {lat: val3, long: val4}...].
  2. Создадим запрос для выгрузки из таблицы маршрутов.


Читать дальше