Arkadaşlar ben mysql'de php ile şöyle bir sorgulamayı acaba nasıl yapabilirim? Şimdi elimde kategoriler var ve her kategorinin farklı sayılarda alt kategorileri var. Mesela bilgisayar kategorisinin alt kategorileri laptop, netbook, anakart olmak üzere üç tane olsun. bu kategorilerin hepsi bir id numarası ile bir tabloda tutuluyor. Şunu yapmak istiyorum: Bilgisayar kategorisi sayfası açılınca bu kategorinin tüm alt kategorilerindeki ürünler de bir arada aynı sıralama kriterlerine tabi tutularak sorgulanabilmeli.
Yani "SELECT * FROM urunler WHERE kategori='bilgisayar' OR kategori='laptop' OR kategori='netbook' OR kategori='anakart' ORDER BY fiyat" gibi bir sorgulamayı belirsiz sayıda OR ile belirsiz seçenekleri içeren her türlü sorgulamayı yapabilecek şekilde nasıl yazabilirim?
Şunun gibi bir işlev arıyorum yani "SELECT * FROM urunler WHERE (for $i=0; $i<kategori_sayisi; $i++) {kategori=$alt_kategori_adi['$i'];} ORDER BY fiyat"
// Şimdi alt kategorinin id'lerini diziye alalım $altkat=Array(); $sorgub=mysql_query("SELECT id FROM kategoriler WHERE anakategori=1");
// Önce kaç alt kategori var onu sayalım $katsay=mysql_num_rows(mysql_query($sorgub));
while($sorgu=mysql_fetch_array($sorgub)){ // Alt kategorilerin idlerini aldık $altkat[]=$sorgu["id"]; }
// Şimdi sorgumuzu çalıştırmadan önce WHERE kısmında kullanacağımız parametreyi hazırlayalım $where=""; for($i=0; $i<=$katsay; $i++){ $where.=" kategori=".$altkat[$i]; }
// Sorgumuzu çalıştıralım $u=mysql_query("SELECT * FROM urunler WHERE ".$where." ORDER BY fiyat ASC"); while($urun=mysql_fetch_array($u)){ // Artık burası ellerinden öper . . . . . }
Kolay gelsin
Edit: Syntax hatasını düzenledim
< Bu mesaj bu kişi tarafından değiştirildi oralunal -- 16 Temmuz 2010; 9:17:17 >
Yani "SELECT * FROM urunler WHERE kategori='bilgisayar' OR kategori='laptop' OR kategori='netbook' OR kategori='anakart' ORDER BY fiyat" gibi bir sorgulamayı belirsiz sayıda OR ile belirsiz seçenekleri içeren her türlü sorgulamayı yapabilecek şekilde nasıl yazabilirim?
Şunun gibi bir işlev arıyorum yani "SELECT * FROM urunler WHERE (for $i=0; $i<kategori_sayisi; $i++) {kategori=$alt_kategori_adi['$i'];} ORDER BY fiyat"