为什么为 foreach() 提供的参数无效

Why Invalid argument supplied for foreach()

请帮帮我!!! 为什么为 foreach()

提供的参数无效

public 函数 purchase_order($id = 0 ,$no_permintaan = 0, $division = 0, $date = 0, $project = 0, $tanggal_pengiriman = 0,$detail_barang = 0,$kode_barang = 0,$amount = 0,$unit = 0,$description = 0,$jatuh_tempo = 0,$status = 0, $协议 = 0 ) {

$this->load->model("m_permintaan_barang");
$data = array(
  "data_permintaan_pesan" => $this->m_permintaan_barang->detail($id)
  );
        $data['category'] = $this->db->query('select barang.kode_barang, barang.nama_barang, barang.pemasok from barang inner join permintaan_barang_asli on barang.kode_barang=permintaan_barang_asli.kode_barang where barang.kode_barang=permintaan_barang_asli.kode_barang')->result();
  $data['data_permintaan_barang']=  $this->m_permintaan_barang->detail_barang($id);
    $data['dataStok'] = $this->db->query('select permintaan_barang_asli.no_permintaan ,permintaan_barang_asli.id_pesanan ,permintaan_barang_asli.detail_barang,permintaan_barang_asli.kode_barang, permintaan_barang_asli.jumlah,permintaan_barang_asli.satuan,permintaan_barang_asli.keterangan,permintaan_barang_asli.persetujuan,data_stok_barang.nama_barang, data_stok_barang.masuk, data_stok_barang.keluar, barang.harga_vendor, barang.pemasok FROM permintaan_barang_asli INNER JOIN data_stok_barang INNER JOIN barang on permintaan_barang_asli.kode_barang=data_stok_barang.kode_barang ')->result();      
    $data['userdata']     = $this->userdata;

       $this->db->trans_start();
  //UPDATE TO PACKAGE
  $aa  = array(
    'id_pesanan' => $id,
    'no_permintaan' => $no_permintaan,
    'divisi' => $divisi,
    'tanggal' =>$tanggal,
    'proyek' =>$proyek,
    'tanggal_pengiriman' =>$tanggal_pengiriman,
    'detail_barang' =>$detail_barang,
    'kode_barang' =>$kode_barang,
    'jumlah' =>$jumlah,
    'satuan' =>$satuan,
    'keterangan' =>$keterangan,
    'jatuh_tempo' => $jatuh_tempo,
    'status' =>$status,
    'persetujuan' =>$persetujuan
  );
  $this->db->where('id_pesanan',$id);
  $this->db->update('permintaan_barang_asli', $data);

  //DELETE DETAIL PACKAGE
  $this->db->delete('permintaan_barang_asli', array('id_pesanan' => $id));

  $result = array();
      foreach($aa AS $key => $val){
         $result[] = array(
          'id_pesanan'   => $id,
          "no_permintaan"  => $_POST['no_permintaan'][$key],
          "divisi"  => $_POST['divisi'][$key],
          "tanggal"  => $_POST['tanggal'][$key],
          "proyek"  => $_POST['proyek'][$key],
          "tanggal_pengiriman"  => $_POST['tanggal_pengiriman'][$key],
          "detail_barang"  => $_POST['detail_barang'][$key],
          "kode_barang"  => $_POST['kode_barang'][$key],
          "jumlah"  => $_POST['jumlah'][$key],
          "keterangan"  => $_POST['keterangan'][$key],
          "jatuh_tempo"  => $_POST['jatuh_tempo'][$key],
          "status"  => $_POST['status'][$key],
          "persetujuan"  => $_POST['persetujuan'][$key],
          "satuan"  => $_POST['satuan'][$key]
         );
      }      
  //MULTIPLE INSERT TO DETAIL TABLE
  $this->db->insert_batch('permintaan_barang_asli', $result);
$this->db->trans_complete();

    $this->load->view('permintaan_masuk/purchase_order', $data);
}

enter image description here

enter image description here

你的代码和图片不一样。

在您的代码中,只需在 foreach($aa AS $key => $val){ 之前执行 var_dump($aa)。 并检查您的变量是否具有数组值,因为该错误消息表明变量 $aa 没有任何数组数据。

在您的图片上,将 foreach 上的代码变量 $id 更改为 $data,因为 $id 不是数组类型。 $id 就是 variable.