我一直试图制作“最受欢迎的文章”剧本
检索最流行是没有问题....但我已经尝试了每一个“添加计数+”的方法 但我的mysql中的count字段总是显示为0这是我的剧本
$add = "1";
$counter=mysql_query("SELECT * FROM news WHERE newsid = '".$newsid."'");
while ($ntcounter=mysql_fetch_array($counter)) {
mysql_query("UPDATE news SET count = '".$ntcounter[count]+$add."' WHERE newsid = '".$newsid."'")
}
我开始考虑数据库是否不可更新
这里有什么我想念的吗?
答案 0 :(得分:1)
您可以一次性完成此操作:
UPDATE news SET `count` = `count`+1 WHERE newsid = '".$newsid."'
<小时/> 修改强>
<?php
//TURN ON ERROR REPORTING!!!
error_reporting(E_ALL);
//Type cast the variable to an integer, despite where its set
(int)$newsid=1;
//or
(int)$newsid=$_GET['id'];
//$newsid="1"; is setting 1 as a string
mysql_query("UPDATE news SET `count` = `count`+1 WHERE newsid=".$newsid);
?>
请注意,如果您没有检查或投射类型。永远记得使用mysql_real_escape_string()
答案 1 :(得分:1)
你根本不应该这样做。 MySQL具有增加值的内置功能,您可以这样做:
UPDATE news SET count = count+1 WHERE newsid = '$newsid'
答案 2 :(得分:0)
是。您的$add
应该是整数。
$add = 1;