[英]Insert new row while update batch in codeigniter
我遇到了一個問題,我不知道如何在 codeigniter 中更新批處理時插入新行。這是我的更新批處理代碼,工作正常,但需要有關插入新行的幫助。
$input_data = $this->input->post();
for($i = 0; $i < sizeof($input_data['iid']); $i++) {
$batch[] = array(
'id' => $input_data['iid'][$i],
'desc' => $input_data['desc'][$i],
'size' => $input_data['size'][$i],
'stock' => $input_data['stock'][$i],
'color' => $input_data['color'][$i],
'qty' => $input_data['qty'][$i],
'price' => $input_data['price'][$i],
'linetotal' => $input_data['linetotal'][$i],
);
}
$this->db->update_batch('invoice_data', $batch, 'id');
$this->session->set_flashdata('success', 'Data added successfully.');
$this->session->set_flashdata('id', $id);
redirect('invoices');
但是當我用新數據添加新行時,它什么也不做。 甚至不添加新的行 ID。 請幫忙
如果您在這樣的輸入中使用數組,這將起作用<input type="text" name="size[]">
function save_data() {
if (isset($_POST['size']) && !empty($_POST['size'])) { // you can take any field excluding id
foreach ($_POST['size'] as $key => $value) {
$batch = array();
$batch['desc'] = $_POST['desc'][$key];
$batch['size'] = $_POST['size'][$key];
$batch['stock'] = $_POST['stock'][$key];
$batch['color'] = $_POST['color'][$key];
$batch['qty'] = $_POST['qty'][$key];
$batch['price'] = $_POST['price'][$key];
$batch['linetotal'] = $_POST['linetotal'][$key];
if (isset($_POST['id'][$key]) && !empty($_POST['id'][$key])) { // if your id is blank means new data otherwise update it with given id
$id = $_POST['id'][$key];
$this->db->update_batch('invoice_data', $batch, 'id'); //pass id in it
} else {
$this->db->insert('invoice_data', $batch);
}
}
$this->session->set_flashdata('success', 'Data added/updated successfully.');
redirect('invoices');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.