Php Mysql页面视图仅在每个会话中更新

Php Mysql页面视图仅在每个会话中更新,php,mysql,Php,Mysql,刚刚得到帮助,使我的网页浏览代码工作。。。现在我希望每个会话/ip的页面浏览量仅为1 在我的users news.users表中,我有这些单元格可供使用:尝试设置之前无法使用的内容,以便这些单元格不被使用 ip_reg, ip_visit, dtreg, dtvisit, visits, pass 我现在使用的代码如下所示: //Adds one to the counter mysql_query("UPDATE news SET posts = posts + 1, publish

刚刚得到帮助,使我的网页浏览代码工作。。。现在我希望每个会话/ip的页面浏览量仅为1

在我的users news.users表中,我有这些单元格可供使用:尝试设置之前无法使用的内容,以便这些单元格不被使用

ip_reg, ip_visit, dtreg, dtvisit, visits, pass
我现在使用的代码如下所示:

//Adds one to the counter 

  mysql_query("UPDATE news SET posts = posts + 1, published=published, last_edit=last_edit WHERE id=$id");

//Retreives the current count 
$count = mysql_fetch_row(mysql_query("SELECT posts FROM news WHERE id=$id"));
//Displays the count on your site print 


echo "<label>Viewed: ";
echo $count[0];
echo " times</label>";

?> 

我可以使用用户中一些未使用的单元格来阻止用户重新加载页面以获得更高的页面浏览率吗?我该怎么做:P

就像我建议的那样,我会将阅读的新闻文章放在用户会话中。试试这个:

if (!isset($_SESSION['read_news']) || !is_array($_SESSION['read_news'])) {
    $_SESSION['read_news'] = array();
}

if (!in_array($id, $_SESSION['read_news'])) {
    $_SESSION['read_news'][] = $id;
    mysql_query("UPDATE news SET posts = posts + 1 WHERE id=$id");
}

如果这不起作用,您没有启用会话,您应该启动会话;在你项目的顶端。确保在每个请求中都调用了该行。

@Ronald01990任何建议:再次提出Pnoob问题。。。。你所指的“阅读新闻”,这是牢房吗我可以用饼干吗?在我的user.inc文件中,我有一行:“全局$user\u COOKIE,$\u COOKIE,$COOKIE\u KEY$这->是匿名的=0$cookie=$\u cookie[$USER\u cookie];如果设置了$COOKIE\u KEY{'No,则它是superglobal$\u会话变量中的一个键。$\u会话只是一个数组,您可以在其中存储与用户会话相关的信息。当您调用print\u r$\u SESSION;时,您可以看到其中的内容。当您向$\u会话数组添加值时,例如$\u SESSION[]='foo';并点击refresh,它应该仍然在数组中。当我调用print\u r$SESSION时,我得到了以下结果:array[read\u news]=>array[0]=>120037 120037是页面id号,你可以随意命名“read_news”。关键是你要建立一个用户已阅读的新闻帖子id数组。在增加计数器之前,你要检查该id是否在数组中。如果不在数组中,你要计算一个新的视图并将帖子id添加到“read_news”数组中。否则你什么也不做,因为用户第二次或更多次访问该文章