如何删除带有codeigniter的idin数据库的数据

时间:2017-02-28 03:46:05

标签: php codeigniter

我希望删除我调用的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']);
    }
}

4 个答案:

答案 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');