2016-04-14 2 views
0

Я пытаюсь отобразить круговую диаграмму, показывающую результаты моего запроса. В этом примере у меня есть 3 периода времени (завтрак, обед, ужин) и подсчет количества записей за каждый период. Однако при отображении диаграммы мне нужно иметь каждый набор данных с другим цветом, поэтому я добавил оператор IF при получении результатов.Оператор MySQL/PHP IF во время выборки массива

Естественно, инструкция не работает и возвращает цвет только для «завтрака». Как я могу обновить инструкцию для проверки каждой возвращенной строки для имени периода, а затем повторить соответствующий цвет?

Благодаря

while($row = mysqli_fetch_array($result)){ 
    $count = $row['period_count']; 
    $period = $row['period']; 

    if ($period = "Breakfast") { 
      $color = "#F38630"; 
     } elseif ($period = "Lunch") { 
      $color = "#E0E4CC"; 
     } else { 
      $color = "#69D2E7"; 
    } 

    echo "{"."\n"; 
    echo "value : " . $row['period_count'] . ","."\n"; 
    echo "color : \"" . $color ."\","."\n"; 
    echo "label : \"" . $row['period']."\""."\n"; 
    echo "},"."\n"; 

} 
+4

Ваши условные обозначения нуждаются в операторе '=='. 'if ($ period ==" Завтрак ") {' – larsAnders

+2

Если вы не поместите double ==, он назначит значение Breakfast переменной $ period. Если вы делаете double (==), он сравнивает их. Просто хотел добавить к larsAnders – Brett

+0

взял вас, ребята, целую минуту, чтобы понять это, да? ;) большое спасибо! – Armitage2k

ответ

0

как указывал @larsAnders, оператор == необходим для сравнения значений.

+1

Если у вас есть привычка испортить их, переверните свои термины. '« Завтрак »= $ period' приведет к немедленной ошибке, а не к неправильной ошибке. Со временем вы сможете обнаружить ошибки '=' с расстояния в милю. – tadman

+0

Вы, ребята, быстры! Все, что я думаю сказать, всплывает, прежде чем я получаю возможность сказать это :) – Stevish