$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);
上述查询有什么问题?它创造了过去的“过去”。到1而不检查条件。如何改进此代码?
答案 0 :(得分:0)
信息不足。什么样的数据存储$ row [' valid_date']?时间戳?
无论如何,不确定你想要得到什么,但通常如果值是>比CURDATE(),它将过去= 0.
然后正确的方法是:
'UPDATE products set past=1 where " '.$row['valid_date'].' " < CURDATE()';
我的意思是,如果日期超过当前日期,那么它将来会是,所以通常会过去= 0,否则就会过去,所以过去= 1
但是,正如惯例一样,你可能正在使用不同的。
另一个非常重要的主题说明:在PHP 7中删除了mysql_query()
答案 1 :(得分:0)
试试这个,
$var1=$row["valid_date"];
$datesql="UPDATE `products` set `past`=1 where $var1 > CURDATE()";
$res=mysql_query($datesql);
希望这能解决您的问题。
答案 2 :(得分:0)
试试这个,
$datesql="UPDATE products set past=1 where ".$row['valid_date']." > CURDATE()";
mysql_query($datesql);
我认为这应该有效iff $ row ['valid_date']是表中列的名称。
如果不是一次,请回显您的查询,然后尝试在您的mysql浏览器上执行。
答案 3 :(得分:0)
如果您的列是日期时间或日期,则下面的代码可能会帮助您
$datesql='UPDATE products set past=1 where '.$row['valid_date'].' > CURDATE()';