gpt4 book ai didi

php - 获取上周的数据(数量)

转载 作者:行者123 更新时间:2023-11-30 00:28:38 33 4
gpt4 key购买 nike

我有一个名为“交易”的表,每当有人在我的网站上进行购买时,我都会在其中输入用户 ID、购买类型和金额。

我想向每个用户显示过去 7 天的这些统计信息。

目前,我有这个:

$data = array();
for($x = 0; $x <= 6; $x++){
$time = time()-($x*86400);
$date = date("Y/m/d", time()-($x*86400));
$queryE = $dbh->prepare("SELECT * FROM transactions WHERE user=:username AND time=:time AND(type='upgrade' OR type='addrbl' OR type='clicks' OR type='banner') ");
$queryE->bindParam(":username",$userdata['id']);
$queryE->bindParam(":time",$time);
$queryE->execute();

$row=$queryE->fetch();
$data[] = ($row['amount'] > 0 ? $row['amount'] : 0);
$dates[] = date("Y/m/d", time()-($x*86400));


}
$days = array('Today');
for ($i=0; $i<7;$i++)
{
$days[$i] = date('d-m', strtotime('-'.($i+0).' day'));
}

然后打印它,我有这个:

echo implode(',', $data);

虽然上面的代码只是打印出 0,0,0,0,0,0,0

如果我从查询中删除 $time,那么它只会选择第一行并打印出每天的内容。

示例:如果有人购买了 3 件商品,但第一件商品花费了 60 美元,那么它将打印出 60,60,60,60,60,60,60

有人可以帮我选择每天的金额总和并将其打印出来吗?

最佳答案

学习time是db中的unix时间戳后编辑

当前您正在尝试获取给定时间(而非日期)的记录。由于数据库上有一个unix时间戳字段time,因此您需要给出一个时间间隔。此外,由于一天可能有多次购买,您需要对给定日期的所有金额进行SUM

...
$begin = strtotime('today midnight');
for($x = 0; $x <= 6; $x++) {
$end = $begin + 86400;
$queryE = $dbh->prepare("SELECT SUM(amount) AS total FROM transactions WHERE user=:username AND time > :begin AND time <= :end AND(type='upgrade' OR type='addrbl' OR type='clicks' OR type='banner') ");
$queryE->bindParam(":username",$userdata['id']);
$queryE->bindParam(":begin", $begin);
$queryE->bindParam(":end", $end);
$queryE->execute();

$row=$queryE->fetch();
$data[] = $row['total'];
$dates[] = date("Y/m/d", $begin);
$begin -= 86400;
}
...

关于php - 获取上周的数据(数量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22681362/

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