页数不会为计数字段添加+1

时间:2011-12-12 02:13:08

标签: php mysql

我一直试图制作“最受欢迎的文章”剧本

检索最流行是没有问题....但我已经尝试了每一个“添加计数+”的方法 但我的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."'")
}

我开始考虑数据库是否不可更新

这里有什么我想念的吗?

3 个答案:

答案 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;