Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
1551
Tıklama
0
Öne Çıkarma
Mysql'de sayısı belirsiz çoklu OR sorgulaması yapmak
R
15 yıl
Er
Konu Sahibi

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"



O
15 yıl
Yarbay

A Kategorisi sayfasında A'nın alt kategorilerindeki ürünleri belirli bir değere göre sıralamak mı istiyorsun?

Edit: O şekilde çalıştırabilirsin.. Ama biraz detaylandırman gerekecek





< Bu mesaj bu kişi tarafından değiştirildi oralunal -- 15 Temmuz 2010; 16:57:36 >
Bu mesaja 1 cevap geldi.
O
15 yıl
Yarbay

Şöyle bir şey yapabilirsin:

// Ş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 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.