$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;
} pdo ile ilgili bir sorunum var
6
●200
- 18-08-2018, 14:12:30Merhaba 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.
- 18-08-2018, 15:44:14Merhaba,
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 - 18-08-2018, 16:07:53malesef 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.MesutEyrice adlı üyeden alıntı: mesajı görüntüle
- 19-08-2018, 11:01:35Merhaba ö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çok sağolun sorunum sayenizde çözüldü.seogrenci adlı üyeden alıntı: mesajı görüntüle