我用谷歌搜索了一个半小时,无法理解如何做到这一点。
我想更新当前行,但保留已分配的值。 我目前有一个复选框,给出“1”或“0”。如果复选框返回“0”我不希望它更新它,因为它没有更新的点。但我不知道该怎么做。
如果我将col1作为重复条目,那么它应该更新col2,3,4,5如果条目没有填充“1”或者从我的表单获得的变量是“0”。
我可以用很多if语句做到这一点,但id更喜欢不这样做。并且要注意我的代码现在非常混乱,因为我只是想找到一个解决方案。当我得到我想要的结果时,代码将被修复。代码也是用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。
答案 0 :(得分: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)";