Şöyle bir yöntem uygulayabilirsiniz. Forma eski ürün nosunu hidden input olarak koyun ve value değerini ürün no olarak verin. Ve yeni verilen input var mı diye kontrol edin.

Örnek olarak :










hidden olarak verdiğiniz ürün no ile normal inputtaki ürün no yu php bölümünde kıyaslayıp ona göre işlem yapın.


if ($_POST) {

$id = $_POST["id"];
$gercek_urun_numarasi = $_POST["gercek_urun_no"];
$urun_numarasi = $_POST["urun_numarasi"];
$urun_adi = $_POST["urun_adi"];
$koridor_adi = $_POST["koridor_adi"];
$koridor_numarasi = $_POST["koridor_numarasi"];

if ($gercek_urun_numarasi == $urun_numarasi) {
$gncll = $db->prepare("Update urunler SET urun_numarasi = ?, urun_adi = ?, koridor_adi = ?, koridor_numarasi = ? WHERE id = ?");
$gncll->execute(array($urun_numarasi, $urun_adi, $koridor_adi, $koridor_numarasi, $id));
echo " Ürün güncellendi...";
} else {
$sorgula = $db->query("SELECT * FROM urunler where urun_numarasi = '$urun_numarasi'", PDO::FETCH_ASSOC);
if ($sorgula->rowCount()) {

echo "Girdiğiniz ürün numarası daha önce kaydedilmiş!";

} else {

$gncll = $db->prepare("Update urunler SET urun_numarasi = ?, urun_adi = ?, koridor_adi = ?, koridor_numarasi = ? WHERE id = ?");
$gncll->execute(array($urun_numarasi, $urun_adi, $koridor_adi, $koridor_numarasi, $id));
echo " Ürün güncellendi...";

}
}
}


$gercek_urun_numarasi ile $urun_numarası aynı ise direkt olarak güncelleme yapacaktır. Eğer aynı değil ise ilk olarak yeni verilen ürün numarası sistemde var mı diye bakacak ardından eğer yok ise güncelleme yapacaktır.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Yok ben hidden input ile uğraşamam derseniz. post olarak id'yi aldığınız için önce id ile select atar sonrasında selectden gelen urun_numarası ile post üzerinden gelen ürün numarasını karşılaştırıp aynı işlemi yapabilirsiniz.

Tavsiyem ekstra mysql sorgusu çalıştırmak yerine hidden input koymak olacaktır. :)