onice 发表于 2011-5-9 09:50:03

如何关联查询、更新多张表内容?

本帖最后由 onice 于 2011-5-9 09:53 编辑


function addsave(){
$data1 = array(      //表 `categories`只需要更新parent_id字段
               'parent_id' => $this->input->post('pid')
         );
   $date2 = array(   //表 `categories_description`需要更新'categories_name' 和 'categories_description' 字段

    'categories_name' => $this->input->post('name'),
    'categories_description' => $this->input->post('description')
   );
if(!empty($_POST['id'])){//如果是添加,这样添加是否正确?
   $this->db->where('categories_id', $_POST['id']);   
   $this->db->update('categories', $data1);
   $this->db->update('categories_description', $data2);
}else{ //如果是更新,我就不知道该怎么样同时更新到关联表的内容了
   $this->db->insert('categories', $data1);
   $this->db->insert('categories', $data2, 'categories_id=');
}
redirect('admin/category/index');
}


问题都放在注释了,
主要就是categories 和categories_description 是两张关联表,
插入和更新都需要同时进行,
不知道还能不能使用mysql_insert_id() 这个函数来得到上一条语句返回的ID值

jeongee 发表于 2011-5-9 10:04:40

本帖最后由 jeongee 于 2011-5-9 10:05 编辑

回复 onice 的帖子

很遗憾的告诉你,你的注释写倒了,
id的获取你可以使用$this->db->last_id();来获取
CI新手朋友切记一定到多看手册。
如果active record不好实现,别忘了,依然可以使用$this->db->query();来自己写sql语句运行,不必过于拘泥。

onice 发表于 2011-5-9 10:08:42

回复 jeongee 的帖子

了解了,
谢谢

zhouli520 发表于 2011-5-9 10:35:59

不建议添加和update写在同一个方法里面
页面也是

onice 发表于 2011-5-9 11:59:04

回复 zhouli520 的帖子

写在一个方法里面,但是model里面会加以判断的
页: [1]
查看完整版本: 如何关联查询、更新多张表内容?