вопрос
Здравствуйте. Нужна помощь!!! Проблема с CASE mysql.
Я делаю следующее(это лишь отрывок моей выборки):
Делаю проверку в самой БД, все выдает верно. Суть простая тут мне выдает максимально указанную дату для сериала и присваивает ей значение. Проще говоря у меня будет меняться картинка в зависимости от даты!
Ниже я пытаюсь сделать условие:
Видимо я не правильно делаю условия, потому как у меня выводиться не корректно, почему-то у меня выводит только $row['serdata'] = 1 ко всем моим значениям. Хотя у каждого сериала THEN разные от 1 до 4. Эти условия у меня в цикле while расположены.
Помогите, не могу додуматься, как правильно сделать вывод. Заранее спасибо!
Я делаю следующее(это лишь отрывок моей выборки):
(CASE
WHEN DATEDIFF(CURDATE(),(SELECT MAX(dataru) FROM `dle_serialdata` WHERE post_id=sea.id))>=6 THEN 1
WHEN DATEDIFF(CURDATE(),(SELECT MAX(dataru) FROM `dle_serialdata` WHERE post_id=sea.id))>=4 AND DATEDIFF(CURDATE(),(SELECT MAX(dataru) FROM `dle_serialdata` WHERE post_id=sea.id))<6 THEN 2
WHEN DATEDIFF(CURDATE(),(SELECT MAX(dataru) FROM `dle_serialdata` WHERE post_id=sea.id))<=3 THEN 3
ELSE 4
END) AS serdata
Делаю проверку в самой БД, все выдает верно. Суть простая тут мне выдает максимально указанную дату для сериала и присваивает ей значение. Проще говоря у меня будет меняться картинка в зависимости от даты!
Ниже я пытаюсь сделать условие:
if ($row['serdata'] = 1) {
echo "123";
}
elseif ($row['serdata'] = 2) {
echo "456";
}
elseif ($row['serdata'] = 3){
echo "789";
}
elseif ($row['serdata'] = 4){
echo "000";
}
else {
echo "NULL";
}
Видимо я не правильно делаю условия, потому как у меня выводиться не корректно, почему-то у меня выводит только $row['serdata'] = 1 ко всем моим значениям. Хотя у каждого сериала THEN разные от 1 до 4. Эти условия у меня в цикле while расположены.
Помогите, не могу додуматься, как правильно сделать вывод. Заранее спасибо!
$switchMap = [
1 => "123",
2 => "456",
3 => "789",
4 => "000",
];
echo ( isset ( $switchMap[$row['serdata']] ) ? $switchMap[$row['serdata']] : "NULL" );