Postingan lainnya
Update database dengan isi string
jadi mau coding jika datanya ada, maka akan terupdate, jika tidak ada maka dia akan insert.
if(mysql_num_rows() == 0){
$query = "INSERT INTO barang VALUES('".$fzeropadded."','".$barcode."','".$desc."','".$kategori."','".$lokasi."')"; }
else{
$query = "UPDATE barang set barcode='".$barcode."',desc='".$desc."',kategori='".$kategori."',lokasi='".$lokasi."' where plu='".$fzeropadded."')";
}
mau tanya penulisan syntax ini salahnya dmn ya? soalnya yang insert berhasil sedangkan si update ga berhasil..
4 Jawaban:
kurang parameter di mysql_num_rows() harusnya:
<pre> ... $result = mysql_query($sql,$conn) or die(mysql_error()); if(mysql_num_rows($result) == 0) ... </pre>
Jawaban Terpilih
- check tabel di variable result apakah ada atau tidak
- variable num_rows ngecheck bilang 0 atau 1
- jika $num_rows lebih besar 0 maka di insert, jika $num_rows lebih besar 1 maka data di update
<pre> $result = mysql_query("SELECT * FROM barang WHERE kode_barang='$isi_variable' LIMIT 1"); $num_rows = mysql_num_rows($result);
if ($num_rows > 0) { // update } else { // insert } </pre>
Tanggapan
bro coba baca komen d bawah
<pre>$fzeropadded = sprintf("%08d", $plu); // Buat query Insert $sql = "SELECT * FROM barang WHERE plu='$fzeropadded' LIMIT 1"; $result = mysqli_query($connect,$sql); $num_rows = mysqli_num_rows($result); if ($num_rows > 0) { $query = "UPDATE barang set barcode='".$barcode."',desc='".$desc."',kategori='".$kategori."',lokasi='".$lokasi."' where plu='".$fzeropadded."')"; } else{ $query = "INSERT INTO barang VALUES('".$fzeropadded."','".$barcode."','".$desc."','".$kategori."','".$lokasi."')"; } // Eksekusi $query mysqli_query($connect, $query); }
</pre> pake cara ini di echo bisa dpt jumlah rownya 0/1 ketika 0 dia berhasil input tetapi ketika 1 dia ga keupdate..ada yg salah kah?
check juga dengan echo kalau 1 larinya kemana, kalau nol larinya kemana, atau tinggal di balik insert ke update dan update ke insert kalau merasa bingung
<pre> if ($num_rows > 0) { echo "insert"; } else { echo "update"; } </pre>