【发布时间】:2021-08-06 17:12:29
【问题描述】:
我有一张带有优惠券代码的表格,上面有创建时的时间戳。
该表的基本内容如下所示:
`coupon_codes`
- coupon_id
- timestamp
- account_id
然后有一个订单表,其中有一行名为coupon_id,因此我可以看到何时下订单,使用了特定的优惠券代码。该表如下所示:
`orders`
- order_id
- timestamp
- account_id
- coupon_id
现在我想显示所有从创建(时间戳)下的带有特定优惠券代码的订单。每年和每月对它们进行分组。像这样:
2021
- Jan
-- Order
-- Order
-- Order
- Feb
-- Order
- Mar
-- Order
2020
- Jan
-- Order
-- Order
-- Order
- Feb
- Mar
-- Order
-- Order
-- Order
Etc
我该怎么做?
我尝试了以下方法:
<?PHP
$getkortingstartdate = '
SELECT * FROM coupon_codes WHERE account_id = "'.$conn->real_escape_string($_GET['account_id']).'"';
$getkortingstartdatecon = $conn->query($getkortingstartdate);
$getkortingstartdate = $getkortingstartdatecon->fetch_assoc();
$date1 = strtotime($getkortingstartdate['timestamp']);
$date2 = strtotime('today');
while ($date1 <= $date2) {
$years = date('Y', $date1) . "<br>";
echo $years;
echo date('Y-m', $date1) . "<br>";
$date1 = strtotime('+1 month', $date1);
$months = array("Jan", "Feb", "Mar", "Apr", "May","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
foreach ($months as $month) {
$maand = date('m',strtotime($month));
$monthandyear = $maand."-".$years;
echo $monthandyear;
}
}
【问题讨论】:
-
1) 开始使用准备好的语句,因为现在您对 SQL 注入非常开放 2) 研究在循环中正确使用
fetch_assoc()。 3)在查询中使用ORDER BY按时间戳排序
标签: php sql loops sorting date