Я давно не создавал PHP, поэтому я не собираюсь предлагать какие-либо исправления для вашего кода, но тип данных входит в элементы массива ссылки на хэш cols, т. Е. Где вы создаете {id: " key ", label:" value "}, вам нужно добавить 'type:" number "' или 'type:" string "' и т. д. Как определить, является ли это число строк, ссылаясь на ваш запрос, не собирается быть таким простым. Вы можете посмотреть на тип столбца через любые метаданные, которые модуль mysql предоставляет для столбца, но большинство диаграмм требуют числовые типы для серии и строковые / числовые типы для значений оси X. Вы всегда можете установить для первого столбца строку или число, а для других столбцов - число, но это будет зависеть от типа создаваемой вами диаграммы.
Кстати, я удивлен, что вы не можете создать структуру изначально в PHP, а затем преобразовать в JSON, вместо того, чтобы собирать строку JSON таким образом - вы можете сделать это в Perl довольно легко.