Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP Dinamik Where Yapısı ?

merhabalar ben e ticaret sistemim için her checkboxda ürüne ait bir özelik olmasını ve bu checboxda tıklandığında ajaxla sadece o özelllikte ki ürünlerin listelenmesini başka bir checboxa tıklandığında ise ilk özellikle birlikte ikinci tıklanan özellikğe sahip ürünlerinde listelenmesini istiyordum.
Şimdi bunun ajax kısmı vs sorun değil fakat sorgu kısmını nasıl yaparım dinamik "where xxx=xxx" yapısını nasıl kurarım?
+1
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    siyahbeyaz adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    472 cevap - 20 soru
    benim kendim deyişiyimle indir bindir metodu :) bu metodu cok severim.. kardesim bak sımdı
    gelen post verileri foreach dongusune sokman lazım.
    asıl işin can alıcı noktası foreach dongusunde olacak


    $sorgu = "Where ";
    foreach($_POST as $anahtar => $deger) 
    {
     $sorgu .= $anahtar."=='".$deger."' AND "; // .= İNDİR BİNDİR YAPAR ;) yani en sonki degerin sonuna yazar..
    }
    // sorgu ciktisi : adi='Aleyna' AND soyadi='Görmez' AND Yasi='15' AND
    // üsteki gibi bi sql ciktisi  olacaktir. 
    $sql = rtrim($sorgu,"AND "); // sondaki AND ve Boslugu alıoruz...
    // sql ciktisi son hali : adi='Aleyna' AND soyadi='Görmez' AND Yasi='15'
    
    if(!empty($sql)) {
    $sorgula = mysql_query("Select * from Tablom ".$sql."");
    } else 
    {
    die("hata Oluştu");
    }
    
    • ibrahim53 adlı üyenin fotoğrafı ibrahim53
      Ne kadar teşekkür etsem azdır aradığım tam olarak buydu.
      10 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      rica ederimm..
      10 yıl önce yazılmış

Cevaplar

  • seyfside adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    35 cevap - 0 soru
    gönderdiğin parametreleri alan bir metod tanımların ve içerisinde gelen parametrelerin gerçekten değerleri varmı diye bakmak lazım.
    eğer değer var ise şarta ek yapmak lazım.
    yanlız sadece istediğim parametreleri göndersin demişsin.
    istek içerisinde göndermezsin fakat isteği karşılayan metodu nasıl yazacaksın bilemiyorum.
    sanırsam tüm parametreleri göndermen gerekecek
    bu arada en çok süzme yapacağını düşündüğün şartları öne alırsan sorgun daha hızlı çalışır.
    örnek bir algoritma;

    sorgu="select * from urunler where active=1"
    if(renk!=""){
    sorgu+=" and renk="+renk;
    }
    if(boy!=""){
    sorgu+=" and boy="+boy;
    }

    bu kodları kopyala yapıştır çalışsın olarak düşünmemelisin.
    algoritma için fikir versn diye yazdım
    yani syntax hataları var.
    • ibrahim53 adlı üyenin fotoğrafı ibrahim53
      Teşekküler cevap içinde tam olarak anlatamadım galiba bu işlemi biliyorum fakat otomatik olarak bir döngüyle (dinamik post vb) şekilde yapmanın yolunu öğrenmek istemiştim malum 2 tane checkboxda problem olmazda 25,30 hele özellikler dinamik olarak eklenince.. daha pratik bir yolunu araştırıyordum.
      10 yıl önce yazılmış
    • seyfside adlı üyenin fotoğrafı seyfside
      php nin davranışını bilmiyorum ama eğer bir form gönderiyorsan request nesnesinden gönderdiğin alanları alabilirsin. bir foreack döngüsü ile de bu alanları sorguya şart olarak ekleyebilirsin.

      foreach($_POST as $key => $value) {
        echo "POST parameter '$key' has '$value';
      }
      

      böyle bi kod parçası buldum mesela foreach içinde şartları eklesen olur gibi
      10 yıl önce yazılmış
  • llorca adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    45 cevap - 17 soru
    checkbox ların name değeri dizi olacak.
    örn

    <checkbox name="ozellik[]" value="aratacağın değer">

    bunu arkadaşında dediği gibi

    foreach($_POST as $key => $value) {
    echo "POST parameter '$key' has '$value';
    }

    ile çekersin