Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL/PHP:从select查询更新结果_Php_Mysql_Codeigniter_Count_Having Clause - Fatal编程技术网

SQL/PHP:从select查询更新结果

SQL/PHP:从select查询更新结果,php,mysql,codeigniter,count,having-clause,Php,Mysql,Codeigniter,Count,Having Clause,我一直想让它永远工作,但我似乎无法让它工作。我需要更新我的tours表中的一列,如果tours_reservations表中的预订少于8个,那么下周的旅游将开始。我有一个select语句,它给出了我想要的结果(需要更新的巡更),但我不知道如何在update语句中处理这个结果。以下是我的选择声明: $date = new DateTime("+ $starting days"); $day = $date->format('Y-m-d'); $this->db->

我一直想让它永远工作,但我似乎无法让它工作。我需要更新我的tours表中的一列,如果tours_reservations表中的预订少于8个,那么下周的旅游将开始。我有一个select语句,它给出了我想要的结果(需要更新的巡更),但我不知道如何在update语句中处理这个结果。以下是我的选择声明:

$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");
$date=newdatetime(“+$start days”);
$day=$date->format('Y-m-d');
$this->db->query(“选择t.t\U id、t.name、t.status、计数(r.reservation\U id)作为c
来自图尔斯t
在t.t\U id=r.tour\U id上加入旅游预订
其中DAY=“$DAY”
按t.t\U id分组

假设您的初始查询是正确的,则使用COUNT(c)

$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));
}
$query=$this->db->query(“选择t.t\u id、t.name、t.status、COUNT(r.reservation\u id)作为c
来自图尔斯t
在t.t\U id=r.tour\U id上加入旅游预订
哪天=?
按t.t\U id分组

有了计数(c),你需要在上面的查询中循环结果,并在循环本身中写入更新查询。嗨,我该怎么做?你能给我指出正确的方向吗?非常感谢!这就成功了。由于声誉不足,你不能投票,但你可以+10000。