更新页面视图上的表值?

时间:2012-10-22 18:04:36

标签: php mysql database triggers

我正在尝试创建一个PHP触发器,当用户在我的网站上查看某些页面时,它将更新 points 部分中的用户表。

我理解这个过程会像这样工作

on page view > update user > where user id is (**get username from session**) > add 5 to points row

任何人都知道如何设置这样简单的东西,为用户提供查看页面的简单点数?

我的网站正在使用PHP和mySQL作为数据库。

4 个答案:

答案 0 :(得分:2)

使用Cookie或会话变量来跟踪用户详细信息,例如用户名或ID。因此,制作页面视图触发器就像在每个页面顶部添加一个mysql查询一样简单,这将更新视图的数据库表。有点像论坛运作的方式。

E.g

<?php

session_start();

$db_connection = mysqli_connect('host','username','password','db');
$user_id = $_SESSION['userid']; //That is asssuming that you had gotten the user id on login

mysqli_query($db_connection, 'UPDATE page_views SET views_column=views_column+1 WHERE userid=$user_id');

?>

答案 1 :(得分:1)

是的,您可以执行类似的操作(如果您拥有用户必须访问的页面):

<?php 
$pointsForThisSite = 5;
include "points_adder.php";
?>

虽然Points_adder查看$ pointsForThisSite是否已定义且&gt; 0,然后在描述时将Points添加到数据库中。

这就是你要找的东西吗?

答案 2 :(得分:1)

创建一个php函数,并在每次用户进入页面时调用它。 您不需要mysql触发器,因为该操作位于网页上。

function add_points($user, $page){
//If users visits too many maybe you don't want to gave him some points.
//add points
}

并在您想要评分的页面中调用该功能

答案 3 :(得分:1)

最不显眼的方法是在页面加载后使用AJAX调用。调用应该是一个执行数据库更新操作的包含文件,并返回204响应,以便访问者的浏览器不会等待响应内容。

对于Apache服务器;

标题('HTTP / 1.0 204无内容');

标题('Content-Length:0',true);

标题('Content-Type:text / html',true);

冲洗();

//在这里更新表格