我希望删除我调用的id_product数据库中的任何图像,但结果只是一个图像,而不是所有图像都在id_product。
我的数据库:
+------------------------------+
|id_image | id_product | image |
+------------------------------+
| 1 | 22 | ab.jpg |
| 2 | 22 | ak.jpg |
+------------------------------+
我的控制员:
function produk_dihapus(){
$id = $this->input->get('id');
$name = $this->input->get('name');
$this->produk_adm->hapus_any_image($id);
log_helper("produk", "Menghapus produk ".$name."");
}
我的模特:
function hapus_any_image($id){
$result = array();
$query = $this->db->get('produk_image',array('id_produk'=>$id));
foreach ($query->result_array() as $result)
{
//print_r($result);
unlink('assets/img/produk/'.$result['gambar']);
}
}
答案 0 :(得分:1)
你必须在 $this->db->get_where()
的位置使用 $this->db->get()
来匹配where condition.So in model
替换
$query = $this->db->get('produk_image',array('id_produk'=>$id));
使用
$query = $this->db->get_where('produk_image',array('id_produk'=>$id));
答案 1 :(得分:0)
没有像您传递参数的方法,您可以简单地应用where
条件或get_where
这样
$this->db->where('id_produk',$id);
$query = $this->db->get('produk_image');
$data = $query->result_array();
foreach ($data as $result)
{
unlink('assets/img/produk/'.$result['gambar']);
}
答案 2 :(得分:0)
在所有版本的codeigniter中使用以下代码作为有效代码。
$sql = "SELECT * FROM produk_image WHERE id_product = ?";
$this->db->query($sql, array(22)); /* product id = 22 in array*/
答案 3 :(得分:0)
如何使用它:
$ids = array('1', '2', '3');
$this->db->where_in('id_produk', $ids);
$query = $this->db->get('produk_image');