我有两种情况。
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>";
}
?>
最佳答案
我确定您有包含此日期信息的列。然后您可以使用:
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。使用带有占位符的准备好的语句来绑定(bind)输入值比连接 sql 字符串要好得多。
关于php - 计算两个时间戳之间每个用户的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220025/