php - 计算每天的最大登录次数

标签 php mysql database time

当用户登录时,我有一个充满 php time(); 的数据库。

我知道我应该为他们的用户名创建一个值并更新登录计数,但我有一个充满 php time(); 的数据库以及他们的用户名

以下是我如何查找单个用户的登录量:

<?php
function to_date($timestamp) {
    return date('Y-m-d', $timestamp);
}
$days = array();
$occurences = array();
$zero = array();
$query = mysql_query("SELECT `login_time` FROM `stats` WHERE `userid`='$someuserid' ORDER BY `login_time` ASC");
while($rows = mysql_fetch_array($query)) {
    $days[] = to_date($rows['login_time']);
}
$days[] = to_date(time());
$occurences = array_count_values($days);
$days = array_unique($days);
sort($days);
for($i = 0; $i < count($days); $i++) {
    $difference = isset($days[$i+1]) ? strtotime($days[$i+1]) - strtotime($days[$i]) : 0;
    if($difference > 86400) {
        $difference = ceil(abs($difference/86400));
        $fill = $days[$i];
        for($k = 0; $k < $difference-1; $k++) {
        $fill += strtotime('+1 day', strtotime($fill));
            $zero[] = to_date($fill);
        }
    }
}
echo "[";
for($i = 0; $i < count($zero); $i++) {
    echo "[\"".$zero[$i]."\",0], ";
}
for($i = 0; $i < count($occurences); $i++) {
    if($i == count($occurences)-1)
        echo "[\"".$days[$i]."\",".($occurences[$days[$i]]-1)."]";
    else {
        echo "[\"".$days[$i]."\",".$occurences[$days[$i]]."], ";
    }
}
echo "]";
?>

我如何将其应用于所有用户并找出数据库中每天登录次数最多的用户?输出针对 jqplot 进行编码。

最佳答案

SELECT
    userid,
    DATE(FROM_UNIXTIME(login_time-MOD(login_time,86400)+1)) as logindate,
    count(*) as logincount
FROM stats 
GROUP BY userid, logindate

使用上面的查询直接从数据库获取所有必需的数据,这将帮助您避免使用 PHP 进行后处理

此外,如果您只想获取一条记录,该记录在(任意)一天内具有最大登录次数,请使用以下查询,并为上述查询添加 SQL 包装器:

SELECT * FROM (
    SELECT
        userid,
        DATE(FROM_UNIXTIME(login_time-MOD(login_time,86400)+1)) as logindate,
        count(*) as logincount
    FROM stats 
    GROUP BY userid, logindate
) tmptable 
ORDER BY logincount DESC, logindate DESC LIMIT 1

请告诉我这是否对您有帮助。

关于php - 计算每天的最大登录次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380964/

相关文章:

php - 如何启动 TDD/BDD PHP CodeIgniter

php - 数据未从 PHP 发布到 MySQL 表中。请告诉我我在这里做错了什么

Python MySQL 和上下文管理器 : __exit__ Attribute error

php - 使用 PDO 准备 SQL 语句

database - "permission denied"用于 pg_dump 输出文件

php - ImageMagick:annotateImage 行高?

php - 使用 PHP 创建 JSON 对象

php - 如何从 MySQL 填充的下拉列表中发布数据

mysql - 如何在具有高度冗余键值的数据库中加速 mysql select

database - 是否有更适合社交网络的数据库系统?