自己写了一个小的留言板,上面有个统计阅览次数的项目,但是感觉好像不太对,SQL语句是我从phpAdmin中看着贴上去的,大家帮我看看有什么毛病么
//     $viewNum = sprintf('UPDATE `ghw_01`.`ghw_forum_message_houses` SET `VIEWS` = '1' WHERE `ghw_forum_message_houses`.`MESSAGE_ID` =7 LIMIT 1 ;'); $result = mysql_query($query,$GLOBALS['DB']);
$row = mysql_fetch_array($result);
$viewNum = $row['VIEWS'] + 1; $viewSQL = sprintf('UPDATE %s SET `VIEWS` = %d WHERE %s `MESSAGE_ID` = %s LIMIT 1 ;',$fid,$viewNum,$fid,$_GET['msgid']);
echo $viewSQL;谢谢大家了

解决方案 »

  1.   

    sql输出是什么~~~在数据库里的执行结果是什么!
      

  2.   

    UPDATE %s SET `VIEWS` = `VIEWS` + 1 WHERE %s `MESSAGE_ID` = %s LIMIT 1
    直接执行UPDATE将阅览次数加一就可以了
      

  3.   


    我是这么写的,是不是忘了什么语句呢?
    $viewSQL = sprintf('UPDATE %s SET `VIEWS` = `VIEWS` + 1 WHERE %s `MESSAGE_ID` = %s LIMIT 1;',$fid,$fid,$_GET['msgid']);
    $result = mysql_query($viewSQL,$GLOBALS['DB']);其中 $fid 与 $_GET['msgid'] 分别是 GHW_FORUM_MESSAGE_HOUSES 与 7 内容上没问题,但是就是不见增加
    整个的$viewSQL打印出来就是 UPDATE GHW_FORUM_MESSAGE_HOUSES SET `VIEWS` = `VIEWS` + 1 WHERE GHW_FORUM_MESSAGE_HOUSES `MESSAGE_ID` = 7 LIMIT 1; 
      

  4.   

    UPDATE GHW_FORUM_MESSAGE_HOUSES SET `VIEWS` = `VIEWS` + 1 WHERE GHW_FORUM_MESSAGE_HOUSES.`MESSAGE_ID` = 7 LIMIT 1;
    你漏了个小数点,或者后面的WHERE语句里表名可以不加的
      

  5.   

     $viewSQL = sprintf('UPDATE %s SET `VIEWS` = `VIEWS` + 1 WHERE %s `MESSAGE_ID` = %s LIMIT 1;',$fid,$fid,$_GET['msgid']);
            $result = mysql_query($viewSQL,$GLOBALS['DB']);
    if( $result )
    {
    mysql_query("update table set hits=hits+1");
    }