выбор значений для форм в изменениях данных php и mysql - PullRequest
0 голосов
/ 27 июня 2018

Таблица

colorid -        1      2       3    4 
color            blue  yellow  green red 
currentcolor     yes    no     no    no

Это база данных. У меня есть PHP-код, который дает форму для выбора цвета, который вы хотите сделать текущим. Это дает варианты цветов. Как только вы выберете цвет, скажем, в этом примере, если вы выберете зеленый и нажмете «Отправить», он должен иметь значение для текущего цвета для зеленого цвета как «да» и автоматически изменить значение для текущего цвета для синего на «нет». Как я могу добиться этого в SQL или PHP? Прямо сейчас у меня есть только

update color (table) sent currentcolor = 'yes' where color = $info['color'] 

, который изменит значение currentcolor для выбранного цвета на yes, но при этом сохранит значение yes для currentcolor для предыдущего цвета. Спасибо!

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

С вашей текущей структурой у вас есть две возможности:

// set all colours to no before setting the current one:
update color set currentcolor = 'no'
// then
update color set currentcolor = 'yes' where color = $info['color']

OR

// set those to NO, which are not the current colous
update color set currentcolor = 'no' where color != $info['color']

В любом случае, я думаю, вам лучше хранить currentcolor в другой таблице, назовем ее мета

table META
item                value 
--------------------------
currentcolor        2
currentbackground   35
.
.
.
0 голосов
/ 27 июня 2018

Используйте это заявление об обновлении для решения вашей задачи: -

$sql = "update color
        set currentcolor = CASE
        WHEN color = '".$info['color']."' THEN 'yes'
        ELSE 'no'
        END" ;
0 голосов
/ 27 июня 2018

Установите все значения текущего цвета на «нет» перед установкой нового на «да».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...