如何为多个页面制作计数器

时间:2013-02-05 15:27:48

标签: php mysql codeigniter

我为我的一个页面做了一个计数器:

$this->db->query("UPDATE viewcounter SET `view` = `view`+1 WHERE pagename = 'http://local.login.com/main/article_view/24' ");

            $sql  = $this->db->query("SELECT * FROM viewcounter WHERE id = id");
            foreach ( $sql->result_array() as $row )
                {       
                    $id = $row["id"];
                    $pagename = $row["pagename"];
                    $view = $row["view"];
            } echo 'SOMETHING';

正如您所注意到我有一个包含id,pagename和views的表。当我访问该页面时,它会在视图中添加一个。 问题是:我怎么能让这个工作,比方说,20页?我不想添加

pagename = "http://local.login.com/main/article_view/24"

pagename = "http://local.login.com/main/article_view/25"

因为我不喜欢那样。

我被困了。

2 个答案:

答案 0 :(得分:3)

以下可能是您正在寻找的。您可以将$i<20更改为您想要运行的任意数量的迭代(即$i<100),并且您可以将24+$i更改为以您想要的任何数字开头(即1332+$i

for($i=0; $i<20; $i++){
    $this->db->query("UPDATE viewcounter SET `view` = `view`+1 WHERE pagename = 'http://local.login.com/main/article_view/".(24+$i)."' ");
}

            $sql  = $this->db->query("SELECT * FROM viewcounter WHERE id = id");
            foreach ( $sql->result_array() as $row )
                {       
                    $id = $row["id"];
                    $pagename = $row["pagename"];
                    $view = $row["view"];
            } echo 'SOMETHING';

答案 1 :(得分:1)

为什么不在输入php页面时运行代码?然后你不必传递参数,你可以使用:

获取你的网址
  

$ url = $ _SERVER ['REQUEST_URI']

如果这就是你的意思?