• 18-08-2018, 14:12:30
    #1
    Merhaba Arkadaşlar, aşağıdaki kodda :cat yerine 10,11,12 yazdığımda bu kategorilere ait ürünlerin tamamını alıyorum ancak :cat olduğunda tek bir sonuç alıyorum. String değerini sorguda nasıl gösterebilirim veya nasıl bir yol izleyebilirim? Şimdiden teşekkürler.

    $kategoriler="10,11,12";
    
    $urun_listele = $vt -> prepare ("select * from urunler where kategori_id in (:cat)");
    $urun_listele -> execute ( array("cat"=>$kategoriler) );
    
    						
    while ($urunler_dizisi= $urun_listele -> fetch(PDO::FETCH_ASSOC) ){
    $uid = $urunler_dizisi["id"];
    $ubaslik = $urunler_dizisi["urun_adi"];
    													
    echo $ubaslik;
    
    }
  • 18-08-2018, 14:33:22
    #2
    Üyeliği durduruldu
    array'ın içinde 'cat' olarak dener misin tek tırnakla
  • 18-08-2018, 15:14:02
    #3
    webirinci adlı üyeden alıntı: mesajı görüntüle
    array'ın içinde 'cat' olarak dener misin tek tırnakla
    malesef olmadı.
  • 18-08-2018, 15:44:14
    #4
    Merhaba,

    4. satırdaki kodu aşağıdaki ile değiştirir misin? Buradaki sorun ":cat" olarak yazdığın değişkeni execute içerisinde sadece "cat" olarak kullanıyorsun. Bu yanlış.

    $urun_listele -> execute ( array(":cat"=>$kategoriler) );
    emre0606 adlı üyeden alıntı: mesajı görüntüle
    Merhaba Arkadaşlar, aşağıdaki kodda :cat yerine 10,11,12 yazdığımda bu kategorilere ait ürünlerin tamamını alıyorum ancak :cat olduğunda tek bir sonuç alıyorum. String değerini sorguda nasıl gösterebilirim veya nasıl bir yol izleyebilirim? Şimdiden teşekkürler.

    $kategoriler="10,11,12";
    
    $urun_listele = $vt -> prepare ("select * from urunler where kategori_id in (:cat)");
    $urun_listele -> execute ( array("cat"=>$kategoriler) );
    
                           
    while ($urunler_dizisi= $urun_listele -> fetch(PDO::FETCH_ASSOC) ){
    $uid = $urunler_dizisi["id"];
    $ubaslik = $urunler_dizisi["urun_adi"];
                                                       
    echo $ubaslik;
    
    }
  • 18-08-2018, 16:07:53
    #5
    MesutEyrice adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    4. satırdaki kodu aşağıdaki ile değiştirir misin? Buradaki sorun ":cat" olarak yazdığın değişkeni execute içerisinde sadece "cat" olarak kullanıyorsun. Bu yanlış.

    $urun_listele -> execute ( array(":cat"=>$kategoriler) );
    malesef olmadı. Daha önce de denemiştim zaten. diğer kullanımlarımda bu şekilde sorun oluşturmuyordu. Ben PDOStatement kullanımımda bir hata olduğunu düşünüyorum aslında ama çözemedim hata nerde.
  • 19-08-2018, 11:01:35
    #6
    Merhaba öncelikle resim PHP dokümanında (http://php.net/manual/tr/pdostatement.execute.php ) yer alan şu ifadeye dikkat etmelisiniz.
    "Tek bir değiştirgeye birden fazla değer belirtemezsiniz. Örneğin bir IN() yan tümcesindeki tek bir isimli değiştirgeye iki değer belirtemezsiniz."

    Bunun sorunun çeşitli çözümleri olsada basit olarak şu şekilde çözebilirsiniz.

    $kategoriler = "10,11,12";
    
    $sql_sorgusu = "select * from urunler where kategori_id in (".$kategoriler.")";
    $urun_listele = $vt->prepare($sql_sorgusu);
    $urun_listele->execute();
    
    while ($urunler_dizisi= $urun_listele -> fetch(PDO::FETCH_ASSOC) ){
        $uid = $urunler_dizisi["id"];
        $ubaslik = $urunler_dizisi["urun_adi"];
        echo $ubaslik;
    }
  • 19-08-2018, 23:13:31
    #7
    seogrenci adlı üyeden alıntı: mesajı görüntüle
    Merhaba öncelikle resim PHP dokümanında (http://php.net/manual/tr/pdostatement.execute.php ) yer alan şu ifadeye dikkat etmelisiniz.
    "Tek bir değiştirgeye birden fazla değer belirtemezsiniz. Örneğin bir IN() yan tümcesindeki tek bir isimli değiştirgeye iki değer belirtemezsiniz."

    Bunun sorunun çeşitli çözümleri olsada basit olarak şu şekilde çözebilirsiniz.

    $kategoriler = "10,11,12";
    
    $sql_sorgusu = "select * from urunler where kategori_id in (".$kategoriler.")";
    $urun_listele = $vt->prepare($sql_sorgusu);
    $urun_listele->execute();
    
    while ($urunler_dizisi= $urun_listele -> fetch(PDO::FETCH_ASSOC) ){
        $uid = $urunler_dizisi["id"];
        $ubaslik = $urunler_dizisi["urun_adi"];
        echo $ubaslik;
    }
    çok sağolun sorunum sayenizde çözüldü.