• 11-07-2020, 11:00:29
    #1
    merhaba arkadaşlar bir verinin güncellenmeden önnceki halini nasıl elde edebilirim. olayım şu.

    urun tablom > urun_toplam
    siparis tablom > siparis_toplam diye tablolarım var.

    sipariş verdik 200 adet . urun tablosuna update ettik. > buraya kadar sorunum yok.

    siparişi fazla verdik diyelim. 180 adet vermemiz lazımdı.update ettim siparis tablosunu güncelledim.
    ama urunler tablosuna girdiğim ilk 200 değeri bulup 180 den çıkartıp kalan 20 yi urunler tablosundan çıkartmak istiyorum.


    aşşağıdaki koda uygulamaya çalışıyorum direk :200-180 yaparak sonucu 20 yazdırıyor.

    // SİPARİŞ TABLOSUNDA VERİYİ ÇEKMEK
    $onceki=$db->prepare("SELECT * FROM siparis where siparis_id=:id");
    $onceki->execute(array( 'id' => guvenlik($_POST['stok_id']) ));
    $oncekiveri= $onceki->fetch(PDO::FETCH_ASSOC);
    $oncekiveri1 = $oncekiveri['sip_urun_adedi'];
    
    
    
    $totall = $sip_urun_adedi - $oncekiveri1;
    
    
    ## GÜNCELLEME GİRİŞE EŞİT İSE
    if ($durum == "giris")
    {
    
    
    ## ÖNCEKİ VERİ BÜYÜKSE ŞİMDİKİ VERİDEN BURDA İŞLEM YAP
    if ($sip_urun_adedi < $onceki)
    {
    
    ## ÜRÜN STOĞUNDAN DÜŞER
    $kasa_g = $db->prepare('UPDATE urun SET
    urun_toplam = urun_toplam - :dusur WHERE urun_adi = :adi');
    $kasa_giris = $kasa_g->execute([
    'dusur' => $totall,
    'adi' => $value
    ]);
    ## // ÜRÜN STOĞUNDAN DÜŞER
    
    
    }
    ## ÖNCEKİ VERİ BÜYÜKSE ŞİMDİKİ VERİDEN BURDA İŞLEM YAP
    
    
    
    
    }
    ## GÜNCELLEME  GİRİŞE EŞİT İSE
  • 11-07-2020, 11:11:12
    #2
    Son yapılan ekleme işleminin hatalı olup olmadığını kontrol etmek istiyorsanız o zaman son update ettiğiniz veriyi de kayıt altına almanız gerekmez mi? Yoksa uygulama son yapılan değişikliği bilemez ki. Tablonuza last update diye bir sütun ekleyin. Hatalı işlem olduğunda last update deki değeri toplam değerden çıkarırsınız ve gerçek değeri toplam değere eklersiniz. Her işlem yaptığınızda last update e de yazmayı unutmayın.
  • 11-07-2020, 11:18:48
    #3
    Birden fazla tablo olduğu için ortak payda ile birleşim gereklidir, ürün toplam ve sipariş toplam için aynı bir id değeri yazılmalıdır veritabanına, sonra id si şu olan ürün toplam ve sipariş toplamları getirir ve istediğini işlemleri yapabilirsiniz. Ortak bir payda oluşturmanız ve istenlien tabloları bir değer ile uniq olarak çekebilmelisiniz.
  • 11-07-2020, 12:59:25
    #4
    @Seyit25; teşekkür ederim , güncelleme yapmadan önceki veriyi nasıl elde edebilirim.
  • 11-07-2020, 14:30:55
    #5
    omrumdely adlı üyeden alıntı: mesajı görüntüle
    @Seyit25; teşekkür ederim , güncelleme yapmadan önceki veriyi nasıl elde edebilirim.
    Yukarıda söyledim tekrar izah edeyim. Örneğin tablonda stok ve son_stokkayit şeklinde sutunlar olsun. stok=100 olsun son_stokkayit=0 olsun. Stok doğru şuan için.
    Yeni 200 tane stok girişi yaptınız. stok 300 oldu. son_stokkayit'a 200 yazdınız. Sonra dediniz ki bu 200 hayalıydı 180 olacaktı.
    O zaman stok tan son_stokkayit'ı çıkaracaksınız sonra 180'i ekleyeceksiniz.>> stok=280 oldu, son_stokkayit'a 180 yazdınız. Sonra dediniz ki bu 180 de yanlış oldu 150 olacaktı,
    O zaman stok tan son_stokkayit'ı çıkaracaksınız sonra 150'i ekleyeceksiniz. >>stok=250 oldu, son_stokkayit'a 150 yazdınız. .....bu şekilde
  • 11-07-2020, 16:22:59
    #6
    @Seyit25; teşekkür ederim aradığım yöntem budu.