Привет У меня есть таблица SQL называется Задержкидобавления цвета столбец таблицы
Delaytype | Delayhours
Engineering | 1
Engineering | 2
Human Error | 4
я запрашиваю эту таблицу следующим образом:
"SELECT Delaytype, SUM('Delayhours') as cnt FROM delays GROUP BY
Delaytype;" //
В моем PHP, если я
echo ' <tr><td>'.$row['Delaytype'].'</td>td>'.$row
['Delayhours'].'</td></tr>
Я получаю
Engineering 3
Human Error 4
Мне нужен способ добавления цвета к этому.
так
я может выводить
echo ' <tr><td>'.$row['Delaytype'].'</td><td>'.$row
['Delayhours'].'</td><td>'.$row['color'].'</td></tr>
Это потому, что мне нужен цвет, чтобы поместить в моей JSON, который связан с Delaytype.
Таким образом, техника становится красной, а человеческая ошибка становится желтой.
В настоящее время я делаю:
sql query ...
$myData = array();
while($row = mysqli_fetch_array($result))
{
$myData[] = array('value =>(int)$row['cnt'],color => '#878BB6');
Это все работает, но я получаю один и тот же цвет в каждом наборе данных, когда я
json_encode($myData);
Это не сюрприз для меня. Я хочу знать, как я могу добавить цвета в свой массив с PHP. Или SQL-решение, которое позволит мне просто создать столбец.
Задержка не динамична, это будет установленная сумма, поэтому мне просто нужно получить x количество цветов.
UPDATE:
i know have two tables
1) delays --- Delaytype | Delayhours \\ correct case
2) delaycolors --- Delaytype | Color \\correct case
I am getting errors with the following query :
$result = ($con, "SELECT d.Delaytype, c.Color, SUM('Delayhours') AS cnt
FROM delays AS d
JOIN delaycolors AS c ON d.Delaytype = c.Delaytype
GROUP BY d.Delaytype; ");
Это дает мне какую-либо ошибку с предложением выше, не работает. @Barmer
Каковы цвета, сопоставленные с результатом? Является ли это основанием для параметра delaytype или number? Если бы это был параметр delaytype, я бы скорее всего добавил таблицу, которая сопоставляет параметр delaytype с цветом и присоединяется к нему в запросе. Если бы была таблица, содержащая все разные типы дат, вы могли бы добавить туда цветную колонку.Если бы это был номер (или может быть также с задержкой), то, как тепловая карта, где в зависимости от масштаба от min до max цвет назначается масштабированным между двумя цветами, тогда это, вероятно, будет сделано в php. –
Если вы уже получаете тип задержки из базы данных, какой вы есть, не можете ли вы просто в цикле while использовать оператор switch в '$ row ['Delaytype']' для определения значения переменной '$ color', а затем поместить его в' $ myData [] 'вместо этого? – Kai