使用表格和规范化
我有三张桌子
-----------
articles
-----------
id int(11) auto_increment
title varchar(100)
-----------
categories
----------
id int(11) auto_increment
title varchar(100)
-------------------
articles_categories
--------------------
articles_id int(11)
categories_id int(11)
我想根据规范化规则保存它以实现这样
articles_id | categories_id
1 1
1 2
1 3
我怎样才能用代码点火器实现谢谢。到目前为止,我已经尝试过这样
查看 | 创建.php
<?php echo form_input('title','','id="title_input"'); ?><br>
Category
<?php
foreach ($categories as $c)
{
echo '<input type="checkbox" id="categories[]" name="categories[]" value="'.$c['id'].'">';
echo $c['title'].' ';
}
?>
<?php
echo form_submit('Submit',"Submit");
echo form_close();
?>
控制器 | 文章.php
function insert()
{
$this->articles_model->save();
}
型号 | 文章模型.php
Thomas Clayson 已经帮助解决了插入问题。
function insert()
{
$title = $this->input->post('title');
$data = array('title' => $title);
$this->db->insert('articles', $data);
$article_id = $this->db->insert_id();
$categories = $this->input->post('categories');
$data = array();
foreach($categories as $category_id)
{
$data[] = array(
'articles_id' => $article_id,
'categories_id' => $caregory_id
);
}
$this->db->insert_batch('articles_categories', $data);
}
这是删除方法
function delete($id)
{
$this->db->delete('articles',array('id'=>$id));
}
我现在坚持使用更新方法
function update($id)
{
$id= $this->input->post('id');
$title=$this->input->post('title');
$categories = $_POST['categories'];
$data=array(
'title'=>$title,
);
$this->db->where('id', $id);
$this->db->update('articles',$data);
/*can update articles table now */
/* here is the missing idea and what I had done so far*/
$bb = array();
foreach($categories as $categories_id )
{
$bb[] = array(
'articles_id' => $id ,
'categories_id' =>$categories_id
);
}
$this->db->update('articles_categories',$bb);
/* end of missing idea */
}
function select($id)
{
$query=$this->db->get_where('articles',array('slug'=>$slug));
return $query->row_array();
/*missing idea to retieve categories */
}
function select_categories()
{
/*missing idea to retieve categories */
}
感谢帮助