• 07-01-2022, 15:39:17
    #1
    Selamlar arkadaşlar,
    PDO ile MsSQL veri tabanına bağlandım. Bazı bilgileri çekip işlemem gerekli. Bir kısmını hallettim fakat çözemediğim bir durum var.

    Kodlarım şu şekilde ve bu kısım güzel şekilde çalışıyor.

    <?php
        $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = '118385'");
        $stok_listesi->execute();
        $stok_listesini_getir=$stok_listesi->fetch(PDO::FETCH_ASSOC);
    
            echo "<pre>";
                    print_r ($stok_listesini_getir);
            echo "</pre>";
    ?>

    Fakat STOCKID = '118385' olan kısmı ben sabit tutmayıp değişken atamak istiyorum. Ve bu değişken birden çok array içeriyor. 3 tane sonuçta gelebilir 50 tanede. O değişkeni oraya yazınca çıktı alamıyorum. Eğer array bir taneyse sonuç alıyorum fakat 1den fazla ise veri gelmiyor.

    Yani şu şekilde yapınca bir sonuç alamadım.


    <?php
        $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = '{$getir['RECEIPTID']}'");
        $stok_listesi->execute();
        $stok_listesini_getir=$stok_listesi->fetch(PDO::FETCH_ASSOC);
    
            echo "<pre>";
                    print_r ($stok_listesini_getir);
            echo "</pre>";
    ?>
    RECEIPTID ile gelen sonuçlarda sorun yok onları tek tek sabit kullanırsam sonuç alıyorum fakat değişken olarak beceremedim.

    Yardımcı olabilirmisiniz rica etsem.
  • 07-01-2022, 15:42:44
    #2
    fetch yazan yeri fetchAll yaparak tüm verileri çekebilirsiniz.

    Ekleme, böyle yaparsanız daha sağlıklı olur.
    <?php
    $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = :stokid");
    $stok_listesi->execute(["stokid" = $getir['RECEIPTID'] ]);
    $stok_listesini_getir=$stok_listesi->fetchAll(PDO::FETCH_ASSOC);

    echo "<pre>";
    print_r ($stok_listesini_getir);
    echo "</pre>";
    ?>
  • 07-01-2022, 15:43:28
    #3
    PHP - WORDPRESS - YAZILIM
    $id = $getir['RECEIPTID'];
    $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = $id ");

    şeklinde deneyebilirsin hocam.
  • 07-01-2022, 16:07:22
    #4
    celalyesil adlı üyeden alıntı: mesajı görüntüle
    fetch yazan yeri fetchAll yaparak tüm verileri çekebilirsiniz.

    Ekleme, böyle yaparsanız daha sağlıklı olur.
    <?php
    $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = :stokid");
    $stok_listesi->execute(["stokid" = $getir['RECEIPTID'] ]);
    $stok_listesini_getir=$stok_listesi->fetchAll(PDO::FETCH_ASSOC);

    echo "<pre>";
    print_r ($stok_listesini_getir);
    echo "</pre>";
    ?>
    Bu kullanımda şöyle bir hata ile karşılaşıyorum hocam.
    Parse error: syntax error, unexpected '=', expecting ']' in xxxx line 152
    Oda şu satır:
    $stok_listesi->execute(["stokid" = $siparisteki_urunleri_getir['STOCKID'] ]);

    metin_nn adlı üyeden alıntı: mesajı görüntüle
    $id = $getir['RECEIPTID'];
    $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = $id ");

    şeklinde deneyebilirsin hocam.
    sizin söylediğinizde değişen bir şey olmadı maalesef metin bey.
  • 07-01-2022, 16:09:06
    #5
    TuncerSK adlı üyeden alıntı: mesajı görüntüle
    Bu kullanımda şöyle bir hata ile karşılaşıyorum hocam.
    Parse error: syntax error, unexpected '=', expecting ']' in xxxx line 152
    Oda şu satır:
    $stok_listesi->execute(["stokid" = $siparisteki_urunleri_getir['STOCKID'] ]);



    sizin söylediğinizde değişen bir şey olmadı maalesef metin bey.

    $stok_listesi->execute(["stokid" => $siparisteki_urunleri_getir['STOCKID'] ]);

    Büyüktür işareti eklemeyi unutmuşum
  • 07-01-2022, 16:11:04
    #6
    PHP - WORDPRESS - YAZILIM
    $id = $getir['RECEIPTID'];
    $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = '$id ' ");

    hata olmuş olabilir hocam doğru, sanırım şu şekilde yaparak çözebilirsiniz o halde hocam, çoklu listeleme yapacaksanız da arkadaşın dediği gibi fetch yerine fetchAll Yapabilirsiniz.
  • 07-01-2022, 20:51:04
    #7
    TuncerSK adlı üyeden alıntı: mesajı görüntüle
    Selamlar arkadaşlar,
    PDO ile MsSQL veri tabanına bağlandım. Bazı bilgileri çekip işlemem gerekli. Bir kısmını hallettim fakat çözemediğim bir durum var.

    Kodlarım şu şekilde ve bu kısım güzel şekilde çalışıyor.

    <?php
        $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = '118385'");
        $stok_listesi->execute();
        $stok_listesini_getir=$stok_listesi->fetch(PDO::FETCH_ASSOC);
    
            echo "<pre>";
                    print_r ($stok_listesini_getir);
            echo "</pre>";
    ?>
    Fakat STOCKID = '118385' olan kısmı ben sabit tutmayıp değişken atamak istiyorum. Ve bu değişken birden çok array içeriyor. 3 tane sonuçta gelebilir 50 tanede. O değişkeni oraya yazınca çıktı alamıyorum. Eğer array bir taneyse sonuç alıyorum fakat 1den fazla ise veri gelmiyor.

    Yani şu şekilde yapınca bir sonuç alamadım.


    <?php
        $stok_listesi = $db->prepare("SELECT * from STOCK where STOCKID = '{$getir['RECEIPTID']}'");
        $stok_listesi->execute();
        $stok_listesini_getir=$stok_listesi->fetch(PDO::FETCH_ASSOC);
    
            echo "<pre>";
                    print_r ($stok_listesini_getir);
            echo "</pre>";
    ?>
    RECEIPTID ile gelen sonuçlarda sorun yok onları tek tek sabit kullanırsam sonuç alıyorum fakat değişken olarak beceremedim.

    Yardımcı olabilirmisiniz rica etsem.
    Eğer STOCKID değeri birden fazla da olabiliyorsa öncelikle SQL sorgunuzu değiştirmeniz gerekiyor. Daha sonra fetch değil fetchAll metodunu kullanmanız gerekiyor ki birden fazla sonuç dönmesi durumunda erişebilesiniz.

    <?php
    $stok_listesi = $db->prepare("SELECT * FROM STOCK WHERE STOCKID IN (:stokids)");
    $stok_listesi->execute(['stokids' => implode(',', $getir['RECEIPTID']]);
    
    $stok_listesini_getir = $stok_listesi->fetchAll(PDO::FETCH_ASSOC);
    echo '<pre>';
    print_r($stok_listesini_getir);
    echo '</pre>';
  • 08-01-2022, 18:41:22
    #8
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Eğer STOCKID değeri birden fazla da olabiliyorsa öncelikle SQL sorgunuzu değiştirmeniz gerekiyor. Daha sonra fetch değil fetchAll metodunu kullanmanız gerekiyor ki birden fazla sonuç dönmesi durumunda erişebilesiniz.

    <?php
    $stok_listesi = $db->prepare("SELECT * FROM STOCK WHERE STOCKID IN (:stokids)");
    $stok_listesi->execute(['stokids' => implode(',', $getir['RECEIPTID']]);
    
    $stok_listesini_getir = $stok_listesi->fetchAll(PDO::FETCH_ASSOC);
    echo '<pre>';
    print_r($stok_listesini_getir);
    echo '</pre>';
    Hocam selamlar şöyle bir hata alıyorum

    Parse error: syntax error, unexpected ']', expecting ')' in ..
    Hata veren bölüm şurası:
    $stok_listesi->execute(['stokids' => implode(',', $getir['RECEIPTID']]);

    Sanki bu kod sorunu mu çözecek ama hata verdi
  • 08-01-2022, 19:05:46
    #9
    implode'nin parantezi kapatılmamış
    $stok_listesi->execute(['stokids' => implode(',', $getir['RECEIPTID'])]);