计算两个时间戳之间每个用户的记录数

时间:2014-08-09 15:20:39

标签: php mysql sql

我有两种情况。

1:我想计算今天使用特定用户ID输入的表中的记录。即只显示今天输入的统计数据。

2:我想显示具有特定用户ID的一周时间跨度的记录。即每次显示记录时,应该采用一周的时间间隔。

以下是我的询问:

$sql2=$Db1->query("SELECT COUNT(userid) AS total FROM tablename WHERE userid='$userid'");

显示记录

<?php
while($row = mysql_fetch_array($sql2))
  {
  echo "<td>" . $row['total'] . "</td>";
 }
?>

1 个答案:

答案 0 :(得分:1)

我确定你有这个日期信息的专栏。然后您可以使用:

SELECT
    DATE(your_date_column), 
    COUNT(userid) AS total 
FROM tablename 
WHERE userid='$userid'
AND your_date_column BETWEEN (NOW() - INTERVAL 1 WEEK) AND NOW()
GROUP BY DATE(your_date_column)

如果您只想要完整日期的数据,那么您必须稍微调整一下查询,即排除此间隔的第一天。

如果您希望本周的总数每天不计,您可以使用

SELECT
    userid,
    COUNT(userid) AS total 
FROM tablename 
WHERE userid='$userid'
AND your_date_column BETWEEN (NOW() - INTERVAL 1 WEEK) AND NOW()
GROUP BY userid;

注意

请查看red box for the mysql_ extension并考虑转移到mysqli或PDO。使用带占位符的预准备语句来绑定输入值比连接sql字符串要好得多。