2017-01-25 7 views
0

Ich möchte hargaLama und hargaBaru berechnen und dann in die Datenbank einfügen. Um dies zu tun, erhalte ich hargaLama aus einer Sicht in mysql zu meinem Controller, während hargaBaru eine Benutzereingabe ist. Auch wenn ich foreach bin mit bekam ich Undefined variable hargaLama und ich habe auch FehlerCodeigniter foreach Undefinierte Variable

Unknown column 'kodeProduksi' in 'Feldliste'. Hier ist mein Controller:

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"; 
      } 
     } 

Und hier ist mein Modell:

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

Antwort

0

Ich bin sicher, Sie brauchen nicht 0 hier

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

Ja, ich habe gerade und das gleiche Ergebnis. Und der Fehler liegt bei dieser Zeile $ jumlahBaru = $ jumlahBaru + $ jumlahLama; – Crevitz

0

wie this.you verwenden müssen, setzen count auf Kodierung, weil dies array.and zurückgegeben wird, und result_array() für Ergebnis verwenden im Array-Format.

$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

Ja, ich habe versucht, die Anzahl zu addieren, aber es funktioniert nicht. Der Fehler der nicht definierten Variable ist auf $ jumlahBaru = $ jumlahBaru + $ jumlahLama; Linie in der Steuerung. – Crevitz

+0

versucht mit Index 0. –