表格
colorid - 1 2 3 4
color blue yellow green red
currentcolor yes no no no
这是数据库。我有一个PHP代码,它给你一个表单,让你选择你想要成为当前的颜色。它提供了颜色选项。一旦您选择了颜色,例如,在本例中,如果您选择绿色并单击submit,那么它应该将当前颜色的值设置为yes,并自动将当前颜色的值更改为no...如何在SQL或php中实现这一点?现在我只有
update color (table) sent currentcolor = 'yes' where color = $info['color']
其将所选颜色的currentcolor _ color的值改变为yes,但仍然保持先前颜色的currentcolor _ color的值为yes。谢谢!
发布于 2018-06-27 05:43:04
使用以下update语句来解决您的问题:
$sql = "update color
set currentcolor = CASE
WHEN color = '".$info['color']."' THEN 'yes'
ELSE 'no'
END" ;
发布于 2018-06-27 05:26:16
对于您当前的结构,您有两种可能性:
// 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']
或
// set those to NO, which are not the current colous
update color set currentcolor = 'no' where color != $info['color']
无论如何,我认为您最好将currentcolor
存储在另一个表中,我们称其为meta
table META
item value
--------------------------
currentcolor 2
currentbackground 35
.
.
.
发布于 2018-06-27 05:20:39
将当前颜色的所有值设置为"no“,然后将新的颜色设置为yes。
https://stackoverflow.com/questions/51051418
复制相似问题