gpt4 book ai didi

php - SQL/PHP : Update result from select query

转载 作者:行者123 更新时间:2023-11-29 12:34:02 25 4
gpt4 key购买 nike

我一直在努力让它永远工作,但我似乎无法让它工作。如果下周旅行时,tours_reservations 表中的预订数量少于 8 个,我需要更新旅行表中的一列。我有一个 select 语句,它给了我想要的结果(需要更新的游览),但我不知道如何在更新语句中处理这个结果。这是我的选择语句:

$date = new DateTime("+ $starting days");
$day = $date->format('Y-m-d');

$this->db->query("SELECT t.t_id, t.name, t.status, COUNT( r.reservation_id ) AS c
FROM tours t
JOIN tours_reservations r ON t.t_id = r.tour_id
WHERE DAY = '$day'
GROUP BY t.t_id
HAVING COUNT( c ) <=8");

通过此功能,我可以获得从现在起 7 天后开始且有 8 个或更少预订的所有事件。游览表有一个状态字段,该字段将更新为“已取消”。如何在更新查询中处理这个问题?任何帮助将不胜感激。

提前致谢。

最佳答案

假设您的初始查询是正确的。

$query = $this->db->query("SELECT t.t_id, t.name, t.status, COUNT( r.reservation_id ) AS c
FROM tours t
JOIN tours_reservations r ON t.t_id = r.tour_id
WHERE DAY = ?
GROUP BY t.t_id
HAVING COUNT( c ) <=8", array($day));

foreach ($query->result() as $row)
{
$this->db->query("UPDATE tours SET status = 'cancelled' WHERE t_id = ? ", array($row->t_id));
}

还添加了参数绑定(bind)。

编辑:当然有更好的方法可以做到这一点,而无需在循环中执行更新。

关于php - SQL/PHP : Update result from select query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059313/

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