2017-01-25 7 views
0

hargaLamahargaBaruを計算し、それをデータベースに挿入します。これを行うには、hargaBaruがユーザ入力である間に、mysqlのビューから私のコントローラにhargaLamaを取得します。でも、私はforeachを使用していても、私は未定義の変数hargaLamaを持って、私はまた、 Codeigniter foreach未定義の変数

不明な列「kodeProduksi」「フィールドリスト」にエラー

を得ました。 は、ここに私のコントローラです:

public function proses_tambahBarang(){ 

     $kode = $_POST['kode']; 
     $kodeProduksi = $_POST['kodeProduksi']; 
     $nama = $_POST['nama']; 
     $tipe = $_POST['tipe']; 
     $ukuran = $_POST['ukuran']; 
     $merk = $_POST['merk']; 
     $satuan = $_POST['satuan']; 
     $jumlah = $_POST['jumlah']; 
     $harga = $_POST['hargaSatuan']; 
     // echo "proses_tambahBarang"; 
     $data_insert = array(
     'kodeBarang' => $kode, 
     'kodeProduksi' => $kodeProduksi, 
     'namaBarang' => $nama, 
     'tipeBarang' => $tipe, 
     'ukuran' => $ukuran, 
     'merk' => $merk, 
     'satuan' => $satuan, 
     'jumlah' => $jumlah, 
     'hargaSatuan' => $harga, 
     'keterangan' => 'n/a', 
     'idUser' => $this->session->userdata('username'), 
     'waktuMasuk' => 'n/a', 
     'waktuEdit' => 'n/a' 
    ); 

     //$cek = $this->mhome->Barang("where kodeBarang = $data_insert[kodeBarang]"); 
     // if($cek >= 1) 
     // { 
     $cek = $this->mhome->BarangHistory("where kodeProduksi = '$data_insert[kodeProduksi]'"); 
     // $cek = $this->db->get_where('baranghistory',array('kodeProduksi' =>$data_insert['kodeProduksi'])); 
     if($cek >= 1); 
     { 
      $query = $this->mhome->TableSelect('listBarang',"where kodeProduksi = '$data_insert[kodeProduksi]'"); 
      foreach ($query as $row) { 
      $hargaLama = $row[0]['hargaSatuan']; 
      $jumlahLama = $row[0]['jumlah']; 
      } 
      $hargaBaru = $data_insert['hargaSatuan']; 
      $jumlahBaru = $data_insert['jumlah']; 

      $jumlahBaru = $jumlahBaru + $jumlahLama; 
      $data_insert['jumlah'] = $jumlahBaru; 
      $data_insert['waktuEdit'] = date("Y-m-d h:i:sa"); 
      $data_insert['keterangan'] = "Updated"; 
      $this->mhome->UpdateData('baranghistory',$data_insert,array("kodeProduksi" => $data_insert['kodeProduksi'])); 
      $this->mhome->UpdateData('barang',$data_insert,array("kodeBarang" => $data_insert['kodeBarang'])); 
      } 
      // $this->mhome->hitungHargaSatuan("where kodeBarang = '$data_insert[kodeBarang]'"); 
      $hitung = $this->mhome->hitungHargaSatuan($data_insert['kodeBarang']); 
      if($hitung){ 
      $this->session->set_flashdata('pesan','Tambah Barang Sukses'); 
      redirect('userhome/index'); 
      } 
      if($cek == 0) { 
      $data_insert['waktuMasuk'] = date("Y-m-d h:i:sa"); 
      $data_insert['keterangan'] = "Baru"; 
      $res = $this->mhome->InsertData('barang',$data_insert); 
      $res2 = $this->mhome->InsertData('baranghistory',$data_insert); 
      } 

      if($res >= 1 && $res2 >=1) 
      { 
       $this->session->set_flashdata('pesan','Tambah Barang Sukses'); 
       redirect('userhome/index'); 
      } 
      else { 
       echo "Tambah barang gagal"; 
      } 
     } 

そして、ここに私のモデルです:私はあなたがthis.youを使用する必要があるように、ここで

 foreach ($query as $row) { 
     $hargaLama = $row['hargaSatuan'];//remove [0] from here 
     $jumlahLama = $row['jumlah'];//remove [0] from here 
     } 

答えて

0

これはarray.and結果を得るためにresult_array()を使用するので、countはcodition上にあります配列形式で。

$cek = $this->mhome->BarangHistory("where kodeProduksi = $data_insert['kodeProduksi']")->result_array(); 
     // $cek = $this->db->get_where('baranghistory',array('kodeProduksi' =>$data_insert['kodeProduksi']))->result_array(); 
     if(count($cek) >= 1); 
     { 
      $query = $this->mhome->TableSelect('listBarang',"where kodeProduksi = $data_insert['kodeProduksi']"); 
      foreach ($query as $row) { 
      $hargaLama = $row['hargaSatuan']; 
      $jumlahLama = $row['jumlah']; 
      } 
+0

ええ、私はちょうど同じ結果を出しました。そしてエラーはこの行にあります$ jumlahBaru = $ jumlahBaru + $ jumlahLama; – Crevitz

0

0を配置する必要はありません確信して

public function TableSelect($table,$where="") 
{ 
    $stmt = $this->db->query('select * from '.$table.' '.$where); 
    return $stmt->result_array(); 
} 
+0

ええ、私はカウントを追加しようとしましたが、動作しません。未定義の変数エラーは、$ jumlahBaru = $ jumlahBaru + $ jumlahLamaにあります。コントローラのライン。 – Crevitz

+0

インデックス0を使用しようとしています。 –