gpt4 book ai didi

PHP 检查数据库中启动日期前一周是否插入了一定数量的行

转载 作者:行者123 更新时间:2023-11-29 23:25:16 24 4
gpt4 key购买 nike

首先:如果标题对您来说含糊不清(因为确实如此),我真的很抱歉,但我不知道如何用一句话正确地表达我的问题......

这是我的问题:对于我的学校项目,我必须建立一个网站,您可以在其中预订博物馆的特殊游览。如果其中一项旅行在出发前一周只有 8 人或更少的预订,则该旅行将被取消。我真的不知道如何做到这一点!我基本上一直在事件前一周检查是否有 8 名或更少的预订。在我的数据库中,我有两个表:tours 和tour_reservations。这是阐明我正在使用的数据库设置的表结构。

游览

http://imgur.com/NxkyVaL,LushMBa

tours_reservations

http://imgur.com/NxkyVaL,LushMBa#1

因此,tours_reservations 中的tour_id 链接到tours 中的t_id。我想要做的是计算tours_reservations 表中一次旅行(tour_id)的行数,并查看在tours 表中的日期字段之前一周插入了多少行。

我正在使用 MVC 框架 CodeIgniter。这是我一直在使用的一段代码:

Controller

public function check_sold_ticket() {
$date = $this->tour_model->get_tour_date();

$last_week = strtotime('-1 week');

$result = $this->tour_model->get_reservations();

if ($date > $last_week && count($result) < 8) {
echo "do something";
}
else {
echo "whoops";
}


$this->load->view('tour/check_sold_tickets');
}

型号

public function get_tour_date() {
$query = $this->db->query("SELECT day FROM tours");

return $query->result();
}

public function get_reservations() {
$query = $this->db->query("SELECT reservation_id FROM tours_reservations");

return $query->result();
}

代码显然是不正确的,但这是我到目前为止所能想到的。

很抱歉问了这么大的问题,但我们将非常感谢任何帮助完成此任务的人。

提前致谢。

最佳答案

像这样的事情应该可以解决问题:

public function get_tour_date($starting = 7)
{
//You need to have PHP 5.3 for this
$date = new DateTime("+ $starting days");
$day = $date->format('Y-m-d');

$query = $this->db->query("
SELECT t.t_id, count(r.reservation_id) as c
FROM tours t
JOIN tour_reservations r ON t.t_id=r.tour_id
WHERE day = '$day'
GROUP BY t.t_id");

return $query->result();
}

我还没有测试过它,但本质上它应该返回一组从今天开始的tour_ids,以及它有多少预订的计数。

如果您想解释其中任何内容,我可以做。

希望这有帮助!

关于PHP 检查数据库中启动日期前一周是否插入了一定数量的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018529/

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