一个简单的文章计数,统计的次数数据保存在mysql数据库的同一张表上,字段类型:int ,长度10 ,现在的问题是在客户那边的有些文章统计的次数经常会无故的变为1,又从新开始计数,没有特定规律。在自己的机子上又没有这种现象。请问何故?

解决方案 »

  1.   

    CREATE TABLE `wzu_news` (
      `newsid` int(6) NOT NULL auto_increment,
      `subject` varchar(90) default NULL,
      `titlecolor` varchar(25) default NULL,
      `author` varchar(30) default NULL,
      `photoby` varchar(40) NOT NULL default '',
      `linkurl` varchar(120) NOT NULL default '',
      `movieurl` varchar(70) default NULL,
      `mediaurl` varchar(70) default NULL,
      `source` varchar(60) default NULL,
      `channelid` int(7) default NULL,
      `keywords` varchar(120) default NULL,
      `position` varchar(40) NOT NULL default '',
      `topicid` int(7) default NULL,
      `hiddenthis` int(1) default '1',
      `pic` int(1) default NULL,
      `note` mediumtext,
      `hotnews` int(1) default '0',
      `occurrencedate` date default '0000-00-00',
      `updatetime` datetime default '0000-00-00 00:00:00',
      `category` int(1) default '1',
      `clicktotal` int(10) default '0',  //统计字段
      `homepicture` varchar(60) default NULL,
      `havenoimg` int(1) NOT NULL default '1',
      `imgputsite` int(1) NOT NULL default '1',
      `headerpic` varchar(60) NOT NULL default '',
      `islock` int(1) default '0',
      `rank` varchar(40) default 'none name',
      `indexid` int(8) default '0',
      `upuser` varchar(30) NOT NULL default '',
      `appenduser` varchar(30) NOT NULL default '',
      `teachrank` int(1) NOT NULL default '0',
      `verificationnote` mediumtext,
      PRIMARY KEY  (`newsid`),
      KEY `id` (`newsid`),
      KEY `subject` (`subject`),
      KEY `time` (`updatetime`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    function updatenewsclick($clicktotal, $newsid)
    {
    connect_db();
    $sql = " LOCK TABLES ".IN_NEWS_TABLE." WRITE ";
    $result = mysql_db_query(DB,$sql);
    $sql = " update ".IN_NEWS_TABLE." set clicktotal= clicktotal+1 where newsid =".$newsid." ";
    $result = mysql_db_query(DB,$sql);
    $sql = " UNLOCK TABLES";
    $result = mysql_db_query(DB,$sql); return true;
    }//计数函数
      

  2.   

    update一下而已,有必要锁表嘛?