【发布时间】:2013-08-25 02:32:25
【问题描述】:
我在foreach 循环中使用SELECT(MAX()),这是我的代码:
foreach($_POST['image_Basename'] as $key=>$image_Basename){
$image_Title = $this->input->post('image_Title');
$image_Category_Id = $this->input->post('image_Category_Id');
$this->db->query("INSERT INTO mg_gallery (image_Group_Id, image_title, image_Basename, image_Category_Id)
SELECT 1 + coalesce((SELECT max(image_Group_Id) FROM mg_gallery), 0), '$image_Title', '$image_Basename', '$image_Category_Id'
");
}
问题是对于每个image_Basename,查询都会产生一个新数字。
例如,如果我得到 3 个image_Basenames,它将为这三个image_Basenames 插入 1、2 和 3。但我希望它向所有image_Basenames 插入相同的数字。
例如,如果 image_Group_Id 中的最大数字为 1,则为每个 image_Basename 添加数字 2。我怎样才能做到这一点?!我放了
SELECT 1 + coalesce((SELECT max(image_Group_Id) FROM mg_gallery
在foreach 循环之外,但它不起作用!!!
下面是我自己添加的答案
【问题讨论】:
-
你的意思是它为
image_Group_Id设置了1,2,3吗? -
您应该在循环之前选择最大值。如果您在最大值内执行此操作,则每次都会增加 1。 “它不起作用”是什么意思?显示您尝试过的代码!
-
将
MAX更改为MIN。它适用于您的代码。 -
@Anthony,例如,如果
image_Group_Id中的最大数字为1,则在image_Group_Id中为每个新的image_Basename添加数字2。
标签: php mysql codeigniter select