gpt4 book ai didi

PHP Count 站点 View 每天创建一行

转载 作者:行者123 更新时间:2023-11-29 01:52:32 25 4
gpt4 key购买 nike

问题 1: 我正在尝试制作一个可以计算页面浏览量(也刷新)并每天在数据库上创建新行的脚本,我将在我的管理仪表板中计算.

这是我的代码:

$today = date("d-m-Y");
$siteViewsPrintSQL = $DB_CON -> query("SELECT * FROM statistics");
$siteViewsPrint = $siteViewsPrintSQL -> fetch();

if ($siteViewsPrint['date'] == $today) {
$updateSiteViewsCount = "UPDATE andreaem.statistics SET site_views = site_views+1 WHERE date = $today";
$DB_CON ->query($updateSiteViewsCount);
} elseif ($siteViewsPrint['date'] != $today) {
$createSiteViewsCount = "INSERT INTO `andreaem`.`statistics` (`ID`, `date`, `site_views`, `new_users`) VALUES (NULL, '$today', '0', '0');";
$DB_CON -> query($createSiteViewsCount);
$updateSiteViewsCount = "UPDATE andreaem.statistics SET site_views = site_views+1 WHERE date = $today";
$DB_CON -> query($updateSiteViewsCount);
} else {
print 'Error while updating siteviews.';
}

我知道这可能不是正确的做法(接受任何建议),这导致每次刷新都会创建一个新行,而不是更新现有行。

问题 2: 将此值保存到数据库中后,我必须从表中获取数据并在我的仪表板中打印,因此我使用了 PDO 连接和 array_sum(函数 convert_to_unit 和 bd_nice_number convert n K 中的数字如果是 1000 或 M 如果是 1000000)

$siteViewsPrintSQL = $DB_CON -> query("SELECT site_views FROM statistics");
$siteViewsPrint = $siteViewsPrintSQL -> fetchAll(PDO::FETCH_ASSOC);
$siteViewsPrintResult = convert_to_unit(bd_nice_number(array_sum($siteViewPrint)));

这将返回 0 而不是总和。

感谢所有能提供帮助的人!

最佳答案

是的,坦率地说,这段代码与正确的代码正好相反。

由于您显然是刚刚开始学习数据库,因此我强烈建议您采用最基本的方法,即存储每次命中。它将使您的代码大大缩短,并让您学习基本的数据库功能。

所以让你的 table 像

dt datetime,
ip varchar(15),

然后在每次点击时运行这样的查询

$stmt = $DB_CON->prepare("INSERT INTO stats VALUES (NOW(),?)");
$stmt->execute([$_SERVER['REMOTE_ADDR']]);

要获得计数,您必须运行这段代码

$count = $DB_CON->query("SELECT count(*) FROM stats")->fetchColumn();

最后一个查询是最重要的:如您所见,数据库可以为您计数(以及求和、计数平均值或进行任何其他计算)。所以你永远不应该在 PHP 端做任何计算,而是总是从数据库请求最终结果。

使用此数据库设置,您将能够通过以这种方式简单地对结果进行分组来获取每日流量:

$daily = $DB_CON->query("SELECT count(*), date(dt) FROM stats GROUP BY date(dt)")->fetchAll();

甚至还可以获得新的访问者。

关于PHP Count 站点 View 每天创建一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37826517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com