[php][mysql]在60秒的录制后删除了表

vltsax25  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(448)

我在做一个程序,它的主要部分是计算用户花在网站上的时间,然后将记录的时间保存在数据库中。
工作原理:在页面上,用户有一个开始记录时间的按钮,然后他被移动到另一个页面,在那里他可以节省时间。节省的时间被发送到php文件(通过ajax),然后php文件为当前用户将值放入数据库。
问题是,在记录60秒后,数据库中的时间表会从头开始(00:00:00)。例如:如果用户已经记录了30秒(00:00:30),那么他运行脚本,再记录40秒,然后在数据库中不记录00:01:10,而是将其分数清除(00:00:00)
详情如下。
mysql表-类型:time
//js公司

$("#stopTimer").click(function(event) {
    var time = event.timeStamp;
    $.ajax({
        type: 'POST',
        async: true,
        url: 'timer.php',
        data: {time: time}
    });
});

//PHP

$time = ($_POST['time']/1000);
$stmt = $db->prepare("UPDATE members SET timeOnline = timeOnline + '$time' WHERE memberID = :memberID");
$stmt->execute(array(':memberID' => $memberID));
ecbunoof

ecbunoof1#

换一种方式试试。保留一个名为 start_time . 当用户第一次按下此按钮时,将当前时间存储在该按钮上。当用户浏览不同的页面时,只需计算 timeOnline . 这也会更简单。

c7rzv4ha

c7rzv4ha2#

如果你想给 TIME 列使用 + INTERVAL x SECOND :

UPDATE members
SET timeOnline = timeOnline + INTERVAL :time SECOND
WHERE memberID = :memberID

相关问题