【问题标题】:Two Part Question on Creating a Simple Page Counter in PHP关于在 PHP 中创建简单页面计数器的两部分问题
【发布时间】:2011-06-21 19:09:08
【问题描述】:

1) 如何向 PHP 页面添加一个简单的页面计数器并将值插入 MySQL 表中?此外,我需要在每次新访问时更新 MySQL 表值。

2) 诀窍在于 PHP 页面是各种用户生成的登录页面的模板。例如,我希望这些页面中的每一个都有自己独立的计数器:

examplesite.com/template.php?getvalue=bob

examplesite.com/template.php?getvalue=sam

examplesite.com/template.php?getvalue=samantha

我的印象是,如果我将计数器放在“template.php”文件中,那么它会将每个用户的所有访问次数加起来。我想要的输出是让每个用户只获得单个登录页面的计数。

所以,如果总共有12次访问,分布如下:

examplesite.com/template.php?getvalue=bob  had 4 visits

examplesite.com/template.php?getvalue=sam  had 2 visits

examplesite.com/template.php?getvalue=samantha  had 6 visits

那么我希望 bob 的页面计数器读取为“4”,sam 读取为“2”,samantha 读取为“6”。我是否正确假设如果我只是将计数器放在 template.php 上,每个用户的登录页面将读取为“12”?您有解决此问题的简单方法吗?

【问题讨论】:

    标签: php mysql unique counter


    【解决方案1】:

    这很简单:

    pdo::prepare( 'UPDATE counter SET hits = hits+1 WHERE value = ?');
    pdo::execute($_GET['getvalue']);
    
    if ( pdo::rowCount() == 0 ) {
      pdo::prepare('INSERT INTO counter (?,0)');
      pdo::execute($_GET['getvalue']);
    }
    

    【讨论】:

      【解决方案2】:

      好吧,就像你可以在生成页面时分离对 bob 和 sam 的请求一样,你可以对计数器做同样的事情吗?

      你可能会对$_GET['getvalue'] 做点什么。只需在查询中使用该值(转义、参数化等)来更新您的计数器....

       UPDATE yourtable SET count = count + 1 WHERE pagename = ?
      

      然后绑定getvalue...

      【讨论】:

        【解决方案3】:

        您可能希望在 MySQL 表中为每个用户保留一行。当您去更新表时,通过读取 getvalue 来更新该用户的相应行。然后对显示用户的页面计数器执行相同操作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-14
          • 2018-08-25
          • 1970-01-01
          • 2012-05-09
          • 1970-01-01
          • 2015-05-16
          相关资源
          最近更新 更多