Kendi işletmemiz için php ile bir uygulama yazıyorum. Fakat bir noktada takıldım. Stok olayı başlı başına karışık zaten.

Şimdi mantık şu ürüne ait ayrı ayrı stok tablolarım var.Tek bir tablo yapamıyorum çünkü son kullanım tarihi olması lazım her stokta.

Tablolarım Alttaki gibi. Satış yapıldığında satış tablosuna kayıt yapılıyor ve üründeki stok değeri düşürülüyor. Buraya kadar sıkıntı yok.

Benim istediğim satış adedi kadar o ürüne ait 'stok' tablosundan stok_kalan'ı 0 olmayan en düşük id'li stoğu bulup düşmeye başlayacak. Satış adedi o anki stoktan fazla ise de
diğer stoka geçip oradan düşmeye başlayacak taki satış adet bitene kadar döngü ile yapmayı denedim ama beceremedim. Bu noktada sizden yardım istiyorum. Şimdiden teşekkürler...



if (isset($_POST['direksatisekle'])) {

    islemkontrol();

    $sahip_id=$_POST['sahip_id'];
    $urun_id=$_POST['urun_id'];
    $satis_adet=$_POST['satis_adet'];
    $satis_birimfiyat=$_POST['satis_birimfiyat'];
    $satis_toplamfiyat=$_POST['satis_toplamfiyat'];
    $satis_aciklama=$_POST['satis_aciklama'];
    $stok_id=$_POST['stok_id'];


    $kaydet=$db->prepare("INSERT INTO satis SET
        sahip_id=:sahip_id,
        urun_id=:urun_id,
        satis_adet=:satis_adet,
        satis_birimfiyat=:satis_birimfiyat,
        satis_toplamfiyat=:satis_toplamfiyat,
        satis_aciklama=:satis_aciklama");
    $insert=$kaydet->execute(array(
        'sahip_id' => $sahip_id,
        'urun_id' => $urun_id,
        'satis_adet' => $satis_adet,
        'satis_birimfiyat' => $satis_birimfiyat,
        'satis_toplamfiyat' => $satis_toplamfiyat,
        'satis_aciklama' => tr_strtoupper($satis_aciklama)
    ));

    if ($insert) {

        $urunstoksor=$db->prepare("SELECT * FROM urun WHERE urun_id=:urun_id");
        $urunstoksor->execute(array('urun_id'=>$urun_id));
        $urunstokcek=$urunstoksor->fetch(PDO::FETCH_ASSOC);
        $eskistok=$urunstokcek['urun_stok'];
        $yenistok=$eskistok-$satis_adet;

        $stokguncelle=$db->prepare("UPDATE urun SET
            urun_stok=:urun_stok
            WHERE urun_id={$urun_id}");
        $insert2=$stokguncelle->execute(array(
            'urun_stok' => $yenistok
        ));

        if ($insert2) {


            $stoksor=$db->prepare("SELECT * FROM stok WHERE urun_id=:urun_id AND stok_id=:stok_id");
            $stoksor->execute(array('urun_id'=>$urun_id,'stok_id'=>$stok_id));
            $stokcek=$stoksor->fetch(PDO::FETCH_ASSOC);
            $stok_kalan=$stokcek['stok_kalan'];

            

                for ($i=$satis_adet; $i<=0; $i--) {

                    
                    ?????????????

                    

                }