0

挿入された最新のデータのみを更新したいだけです..しかし、WHERE$query1とで$query2)間違っていると確信しています

<?php
include "koneksi.php";
$kdj=$_POST['kdj'];
$id=$_POST['id'];
$qty = $_POST['qty'];
$kodelagi = mysql_query("Select kd_jual from nota ORDER BY id_nota DESC LIMIT 1");
$row = mysql_fetch_array($kodelagi);
$kodelagi1 = $row['kd_jual'];
if((!empty($id)) && (!empty($kdj)) && (!empty($qty)))
{
    $query = mysql_query("INSERT INTO nota (id_item,qty,kd_jual) values ('$id','$qty','$kdj');");
    $query1 = mysql_query("UPDATE nota,item SET nota.harga_item = item.harga_item WHERE nota.kd_jual = '$kodelagi1'");
    $query2 = mysql_query("UPDATE nota SET subtotal = harga_item * qty WHERE nota.kd_jual = '$kodelagi1'");
    ?><script language="Javascript">;
    document.location = 'transaksi2.php' </script><?php
}else 
{
    print "<script>alert('Maaf, tidak boleh ada field yang kosong !');
    javascript:history.go(-1);</script>";
}?> 

これを実行すると、DBにこれを取得しただけだからです

| id_nota | id_item | harga_item | qty | subtotal | Kd_jual
|  57     |   11    |  0         | 23  |  0       |13-10-201323:32:20
4

1 に答える 1

0

挿入する前に、最新の挿入レコードを取得しようとしています。レコードを挿入した後、Select Query を実行します。もう 1 つのポイントとして、最後に挿入されたレコードの "kd_jual" 値を取得しています。日時列です。同じ日時の複数のレコードが存在する可能性があります。したがって、特定のユースケースでは、これは失敗し、複数のレコードが順番に更新されます (最後に挿入されたものだけではありません)。ID列(id_nota)を使用することをお勧めします

以下のようにコードを変更しようとしました。私はそれをテストしませんでした。必要に応じて修正します。

<?php
include "koneksi.php";
$kdj=$_POST['kdj'];
$id=$_POST['id'];
$qty = $_POST['qty'];

if((!empty($id)) && (!empty($kdj)) && (!empty($qty)))
{
$query = mysql_query("INSERT INTO nota (id_item,qty,kd_jual) values ('$id','$qty','$kdj');");

$kodelagi = mysql_query("Select id_nota from nota ORDER BY id_nota DESC LIMIT 1");
$row = mysql_fetch_array($kodelagi);
$max_id_nota= $row['id_nota'];

$query1 = mysql_query("UPDATE nota,item SET nota.harga_item = item.harga_item WHERE nota.id_nota = '$max_id_nota'");

$query2 = mysql_query("UPDATE nota SET subtotal = harga_item * qty WHERE nota.id_nota = '$max_id_nota'");

?><script language="Javascript">;
document.location = 'transaksi2.php' </script><?php
}else 
{
print "<script>alert('Maaf, tidak boleh ada field yang kosong !');
javascript:history.go(-1);</script>";
}?> 
于 2013-10-13T19:48:38.023 に答える