Şimdi Ara

Mysql'de sayısı belirsiz çoklu OR sorgulaması yapmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
1.525
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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"







  • 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 >
  • Şö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 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.