php - 如何使用更新批量查询更改 codeigniter 中的多行
问题描述
问题: 我只想通过在我的数据库中使用唯一 id 来更新账单,但我的问题是它显示错误为未定义的索引 id..帮助我解决这个错误...
控制器代码:
public function Bill_Edit()
{
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
$query = $this->db->get('parmaster');
$data['PName']=$query->result_array();
$data['r'] = $this->User_model->Bill_Edit1();
$data['result'] =$this->User_model->Bill_Edit();
$this->load->view('Inventory/Bill_Edit',$data);
}
型号代码:
public function Bill_Edit()
{
$Search = $this->input->post('Search');
$this->db->where('billno', $Search);
$this->db->select('*');
$this->db->from('salesitem');
$this->db->join('salesbill', 'salesbill.no = salesitem.billno','left outer');
$query = $this->db->get()->result_array();
return $query;
}
public function Bill_Edit1()
{
$Search = $this->input->post('Search');
$this->db->where('billno', $Search);
$this->db->select('*');
$this->db->from('salesitem');
$this->db->join('salesbill', 'salesbill.no = salesitem.billno','left outer');
$query = $this->db->get()->row();
return $query;
}
下面我附上了我的截图错误..帮我解决这个错误
更新批处理代码:
public function Bill_Update($data)
{
$LDate = $this->input->post('TDate');
$date = str_replace('/', '-', $LDate);
$newDate = date("Y-m-d", strtotime($date));
$id =$this->input->post('billid');
$billno = $this->input->post("billno");
$data = $this->input->post();
$count = count($data['Product_Code']);
for($i = 0; $i<$count; $i++){
$entries[] = array(
'Id' => $data['billId'][$i],
'Product_Code'=>$data['Product_Code'][$i],
'Prdtname'=>$data['Prdtname'][$i],
'Qty'=>$data['Qty'][$i],
'rate'=>$data['rate'][$i],
'billdate'=>$newDate,
'amount'=>$data['amount'][$i]
);
}
$this->db->where('Id',$id);
$this->db->update_batch('salesitem', $entries,'Id');
解决方案
下面的代码有问题
更新批处理代码:
public function Bill_Update($data)
{
$LDate = $this->input->post('TDate');
$date = str_replace('/', '-', $LDate);
$newDate = date("Y-m-d", strtotime($date));
$id =$this->input->post('billid');
$billno = $this->input->post("billno");
$data = $this->input->post();
$count = count($data['Product_Code']);
for($i = 0; $i<$count; $i++){
$entries[] = array(
'Id' => $data['billId'][$i],
'Product_Code'=>$data['Product_Code'][$i],
'Prdtname'=>$data['Prdtname'][$i],
'Qty'=>$data['Qty'][$i],
'rate'=>$data['rate'][$i],
'billdate'=>$newDate,
'amount'=>$data['amount'][$i]
);
}
$this->db->where('Id',$id);
$this->db->update_batch('salesitem', $entries,'Id');
}
更改
'Id' => $data['billId'][$i],
为'id' => $data['billId'][$i],
消除$this->db->where('Id',$id);
$this->db->update_batch('salesitem', $entries,'Id');
至 $this->db->update_batch('salesitem', $entries,'id');
然后再试一次。
推荐阅读
- c# - 为什么将 SelectedItem 作为自定义对象传递到新页面后没有内容显示?
- javascript - 使用 JavaScript 在后台播放 Spotify 客户端上的 Spotify 歌曲
- package-managers - LXC - 无法从 linux 容器访问包管理器
- javascript - 正文中的 HTML 代码
- bash - 这个 bash 命令有什么作用?
- r - 如何将一组 Unicode .txt 转换为 ANSI 以在 R 中进行文本分析
- css - CSS:圆形图像
- python - 在 Python 中绘制一个双条形图,其值来自两个不同的字典
- html - css不同的页面方向与一个打印过程
- c# - 无法在 Alea GPU (C#) 中启动内核