나는 PHP를 배우고 Codeigniter
프레임 워크를 사용하고 있습니다. 새 데이터를 삽입 할 때 내 컨트롤러에서이 코드를 사용하고 있습니다.코드 이그니 터에서 여러 조건으로 여러 행을 업데이트하는 방법
//INSERT MULTI ROWS TABEL harga_inventori
$kode_inventori = $_POST['kode_inventori'];
$result = array();
foreach($_POST['kode_kategori_pelanggan'] AS $key => $val){
$result[] = array(
"kode_kategori_pelanggan" => $_POST['kode_kategori_pelanggan'][$key],
"kode_inventori"=>$kode_inventori,
"harga" => $_POST['harga_jual'][$key],
"diskon" => $_POST['diskon'][$key]
);
}
$res = $this->db->insert_batch('harga_inventori', $result);
redirect("inventori");
그러나 업데이트 기능에 동일한 패턴을 사용하면 전혀 작동하지 않습니다.
for($i = 0; $i < count($_POST['harga_jual'][$i]); $i++) {
if($_POST['kode_kategori_pelanggan'][$i] != '') {
$res[] = array(
'harga' => $_POST['harga_jual'][$i],
'diskon' => $_POST['diskon'][$i],
);
$this->db->where('kode_inventori',$_POST['kode_inventori']);
$this->db->where('kode_kategori_pelanggan',$_POST['kode_kategori_pelanggan'][$i]);
$this->db->update('harga_inventori',$res);
}
}
redirect("inventori");
나는 update_batch()
을 시도하고 있지만 많은 오류를 가지고, 그래서 나는 for
루프를 사용하고 있는데 한 번에 하나의 행을 업데이트.
여기에서 문제가 될 수있는 것은 무엇입니까?
'$의 res' ==''[update_batch] (HTTPS에 대한 $ data' – RiggsFolly
: //www.codeigniter. com/user_guide/database/query_builder.html? highlight = update_batch # CI_DB_query_builder :: update_batch) '쿼리에서'where'를 사용할 수 없습니다. 세 번째 매개 변수에 열 이름을 전달하기 만하면 name 매개 변수가 update 배열에 있어야합니다. – Gaurav
@ RiggsFolly는 여전히 작동하지 않습니다. 나는 이미 그것을 바꾼다. – Kelpie