DATABASE NOTIN SORUNU

database sınıfında notin çalışmıyor.

controller içinden gönderirken

$data['urunler'] = Model::run('urunler', 'bayi')->liste_haric(implode(',', $musteri_urunleri_id));


model sınıfımdaki fonksiyonum bu

public function liste_haric($urun_id=''){
if(empty($urun_id)){
return DB::table('urunler')->select('*')->orderBy('urun_id', 'asc')->getAll();
}else{
echo $urun_id;
return DB::table('urunler')->select('*')->notIn('urun_id', [$urun_id])->orderBy('urun_id', 'asc')->getAll();
}
}


echo ile deneme yapıyorum 1,2 geliyor. (örneğin) ama sorguda işlemiyor. 2 idyı alıyor.
notIn('urun_id', [$urun_id]) bu kısmı
notIn('urun_id', [1,2]) yapıyorum çalışıyor.

bende geçici çözüm olarak customquery ile yaptım. turan hocam anlayamadığım bir sorun mevcut.

böyle yaptım çalışıyor.

return DB::customQuery("SELECT * FROM urunler WHERE urun_id NOT IN ($urun_id) ORDER BY urun_id ASC")->getAll();

Cevaplar (1)


Turan Karatuğ
Software Developer - Creator of TitanMVC
3 hafta önce

implode() fonksiyonu ile ürün_id'lerinizi aralarına virgül koyarak birleştirmişsiniz. Bu fonksiyon size bir string döndürür. Bu stringi array içerisine alarak göndermek doğru bir kullanım değildir. notIn() methodunun ikinci parametresine, her bir urun_id değeri ayrı bir eleman olan bir array vermeniz gerekiyor.
http://v2.titanphp.com/doc/database

Cevap Yazın


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]