-1

我用谷歌搜索了 1.5 小时,无法理解如何做到这一点。

我想更新我当前的行,但保留已经分配的值。我目前有一个复选框,它要么给出“1”,要么给出“0”。如果复选框返回“0”,我不希望它更新它,因为它没有更新的意义。但是我不知道该怎么做。

如果我将 col1 作为重复条目,那么如果条目尚未被“1”填充,或者从我的表单中获取的变量为“0”,则它应该更新 col2、3、4、5。

我可以用很多 if 语句来做到这一点,但我不喜欢这样做。请注意,我的代码现在非常混乱,因为我只是想找到解决方案。当我得到我想要的结果时,代码将被修复。代码也是用mysql编写的,因为我对它更熟悉,完成后将被移植到pdo。请不要告诉我“不要使用 mysql”,也不要给我答案。已经经常得到那些

 $insert_movie = "INSERT INTO filmer (namn, rel_720p, rel_1080p, rel_dvdr, swesub, addate)
 VALUES ('$namn','$rel_720p','$rel_1080p','$rel_dvdr','$swesub',CURRENT_TIMESTAMP)
 ON DUPLICATE KEY UPDATE
 rel_720p = IF('$rel_720p' IS NOT NULL, '$rel_720p', rel_720p), rel_1080p = IF('$rel_1080p' IS NOT NULL, '$rel_1080p', rel_1080p), rel_dvdr = VALUES(rel_dvdr), swesub = VALUES(swesub)";
 $result = mysql_query($insert_movie, $connection) or die (mysql_error());
 mysql_close($connection);

发生了什么的图片: 第一个条目: http: //puu.sh/9iN0p/91f0839b8f.png 第二个条目: http: //puu.sh/9iN2Q/8cafdb5422.png

看看那里的最后一行。从第一张到第二张应该是 1,1,1,1 而不是 0,1,1,0。

4

1 回答 1

0

可能不是最好的解决方案,但无论如何我设法做到了:

ON DUPLICATE KEY UPDATE
rel_720p = IF('$rel_720p'=1, 1, rel_720p), rel_1080p = IF('$rel_1080p'=1, 1, rel_1080p), rel_dvdr = IF('$rel_dvdr'=1, 1, rel_dvdr), swesub = IF('$swesub'=1, 1, swesub)";
于 2014-06-07T12:35:41.990 回答