• 06-12-2023, 03:07:43
    #1
    Merhabalar,
    XML ile gelen verileri simplexml_load_file fonksiyonuyla veritabanına kayıt ediyorum. Verileri eklemekte sorunum yok fakat gelen xml verisinde ürün fiyatları ve stok miktarları değiştiğinde sayfa sonunda bana bilgi vermesini istiyorum. Şuanda yapabildiğim veritabanında veri varsa;
    $urunkontrol = $db->prepare("SELECT * FROM urun WHERE urun_kod = ?");
            $urunkontrol->execute(array($item->id));
            $kontrol = $urunkontrol->fetch(PDO::FETCH_ASSOC);
    
            if($kontrol > 0)
    bu kod ile eklenmiş olan ürünlerin yalnızca fiyat ve stok bilgisini güncelletiyorum. Else ile yüklü değilse yeniden ekleme yapıyor zaten.

    Sorgu çalıştığında eğer fiyat değiştiyse veya stok miktarı atıyorum 20'den aşağı düştüyse bana bilgi vermesini istiyorum. Nasıl yapabilirim?

    Yardımlarınız için şimdiden teşekkürler.
  • 06-12-2023, 03:18:55
    #2
    $urunkontrol = $db->prepare("SELECT * FROM urun WHERE urun_kod = ?");
    $urunkontrol->execute(array($item->id));
    $eski_veri = $urunkontrol->fetch(PDO::FETCH_ASSOC);
    
    if ($eski_veri) {
    // Ürün bulundu
    $yeni_fiyat = $item->fiyat; // Yeni fiyat
    $yeni_stok = $item->stok; // Yeni stok miktarı
    
    // Eski verilerle karşılaştırma
    if ($yeni_fiyat != $eski_veri['fiyat']) {
    // Fiyat deÄŸiÅŸtiÄŸinde burada iÅŸlem yapabilirsiniz.
    echo "Fiyat deÄŸiÅŸti: {$eski_veri['fiyat']} => $yeni_fiyat<br>";
    }
    
    if ($yeni_stok < $eski_veri['stok']) {
    // Stok azaldığında burada işlem yapabilirsiniz.
    echo "Stok miktarı azaldı: {$eski_veri['stok']} => $yeni_stok<br>";
    }
     //db update
    } else {
    // Ürün bulunamadı, ekleme işlemi yapabilirsiniz.
    }
  • 06-12-2023, 03:24:03
    #3
    Yapmak istediğini yanlış anlamadıysam aşağıdaki kod bloğunu ihtiyaçlarına göre düzenleyebilirsin.

    $urunkontrol = $db->prepare("SELECT * FROM urun WHERE urun_kod = ?");
    $urunkontrol->execute(array($item->id));
    $kontrol = $urunkontrol->fetch(PDO::FETCH_ASSOC);
    
    if ($kontrol) {
        // Ürün bulundu, stok ve fiyat bilgilerini alalım
        $eskiStok = $kontrol['stok'];
        $eskiFiyat = $kontrol['fiyat'];
    
    
        $yeniStok = /* Yeni stok değerini elde etmek için kullanılacak bir yöntem */;
        if ($yeniStok < 20) {
            echo "Uyarı: Yeni eklenen stok sayısı 20'nin altında!";
        }
    
        // Yeni fiyat ile eski fiyat arasında fark var ise uyarı ver
        $yeniFiyat = /* Yeni fiyat değerini elde etmek için kullanılacak bir yöntem */;
        if ($yeniFiyat != $eskiFiyat) {
            echo "Uyarı: Yeni fiyat ile eski fiyat arasında fark var!";
        }
    
        // DiÄŸer iÅŸlemlerinizi buraya ekleyebilirsiniz
    } else {
        // Ürün bulunamadı, isteğe bağlı olarak bir mesaj gönderebilirsiniz
        echo "Uyarı: Belirtilen ürün kodu bulunamadı!";
    }
  • 06-12-2023, 03:42:31
    #4
    İlginiz için çok teşekkür ederim. @asiminnesli; hocamızın verdiği kodda düzenleme yaparak işimi fazlasıyla gördü. Çok teşekkür ederim. @mfbexe; sizin de verdiğiniz kod yapısı aynı yere çıkıyor. Sorunum çözüldü. Teşekkürler.