Saya mempunyai table
m_barang :cd_brg,nm_brg,cd_group,stock_min,stock_akhir,stock_akhir,satuan,keterangan
brg_keluar :cd_keluar,nm_pekerjaan,tgl_keluar,nm_dept,nm_terima,keterangan
brg_keluardetail:id,cd_keluar,cd_brg,nm_brg,satuan,qt_keluar,keterangan
Dan saya mempunyai script utk transaksi barang keluar, tapi masalah nya script itu blm memotong "stock_akhir" di m_barang. Saya minta tolong utk di perbaikin script saya ini
[code=php]
if ($_POST["additem"])
{
$qryqty = mysql_query("SELECT stock_akhir FROM m_barang WHERE cd_brg='$_POST[txt_barangcd]'");
$dtc=mysql_fetch_array($qryqty);
if($dtc[stock_akhir] >= $_POST[txt_qty])
{
$qrysrc = mysql_query("SELECT * FROM brg_keluar WHERE cd_keluar = '$_POST[txt_keluar]'");
if(mysql_num_rows($qrysrc)>0)
{
$qrysrcitm = mysql_query("SELECT * FROM brg_keluardetail WHERE cd_keluar = '$_POST[txt_keluar]' AND cd_brg = '$_POST[txt_barangcd]'");
if(mysql_num_rows($qrysrcitm)>0)
{ header("location:brgkeluar1.php?com=$_POST[txt_keluar]&er=1"); }
else if(mysql_num_rows($qrysrcitm)<1)
{
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-'".$dt."' WHERE cd_brg = '".$_POST."'");
$qryupdt2 = mysql_query("UPDATE brg_keluar SET cd_keluar='$_POST[txt_keluar]', nm_pekerjaan='$_POST[txt_kerja]', tgl_keluar='$_POST[txt_tgl]', nm_dept='$_POST[txt_dept]', nm_terima='$_POST[txt_terima]', keterangan='$_POST[txt_keterangan]' WHERE cd_keluar='$_POST[txt_keluar]'");
$qryinsrt = mysql_query("INSERT INTO brg_keluardetail (cd_keluar,cd_brg,nm_brg,satuan,qt_keluar,keterangan) VALUES ('$_POST[txt_keluar]','$_POST[txt_barangcd]','$_POST[txt_barangnm]','$_POST[txt_satuan]','$_POST[txt_qty]','$_POST[txt_ket]')");
header("location:brgkeluar1.php?com=additem&nokeluar=$_POST[txt_keluar]");
}
}
else
{
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-'$_POST[txt_qty]' WHERE cd_brg = '".$_POST."'");
$qryinsrt = mysql_query("INSERT INTO brg_keluar (cd_keluar,nm_pekerjaan,tgl_keluar,nm_dept,nm_terima,keterangan) VALUES ('$_POST[txt_keluar]','$_POST[txt_kerja]','$_POST[txt_tgl]','$_POST[txt_dept]','$_POST[txt_terima]','$_POST[txt_keterangan]')");
$qryinsrt2 = mysql_query("INSERT INTO brg_keluardetail (cd_keluar,cd_brg,nm_brg,satuan,qt_keluar,keterangan) VALUES ('$_POST[txt_keluar]','$_POST[txt_barangcd]','$_POST[txt_barangnm]','$_POST[txt_satuan]','$_POST[txt_qty]','$_POST[txt_ket]')");
header("location:brgkeluar1.php?com=additem&nokeluar=$_POST[txt_keluar]");
}
}
else if($dtc[stock_akhir] < $_POST[txt_qty])
{ header("location:brgkeluar1.php?com=$nokeluar&er=2"); }
}
Terimakasih utk bantuannya,
salam
Silahkan
login untuk menjawab!
saya rasa masalahnya ada di
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-'".$dt."' WHERE cd_brg = '".$_POST."'");
operasi pengurangan tidak bisa dilakukan antar int dan string, tinggal hilangkan tanda petik, seperti:
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-".$dt." WHERE cd_brg = '".$_POST."'");
dan juga di
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-'$_POST[txt_qty]' WHERE cd_brg = '".$_POST."'");
jadi
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir=stock_akhir-$_POST[txt_qty] WHERE cd_brg = '".$_POST."'");
hendra
· Dec 19, 2011
· 0 Suka
· 0 Tidak Suka
Mas, Ellyx Christian
Terimakasih utk respon nya. Tapi saya udah coba rubah seperti yg mas tulis di atas.
Tapi belum juga mengurangi "stock_akhir" di table m_barang
coba ganti seperti ini:
$lastStock = mysql_fetch_array(mysql_query("select * from m_barang where cd_barang='".$_POST['txt_barangcd']."'"));
$stok_akhir = $lastStock['stock_akhir'] - $dt['txt_qty'];
$qryupdt = mysql_query("UPDATE m_barang SET stock_akhir='".$stok_akhir."' WHERE cd_brg = '".$_POST['txt_barangcd']."'");
jika tidak berhasil juga berarti ada kesalahan algoritma, silahkan cek lebih teliti kodingmu.