• 11-07-2013, 12:31:10
    #1
    Merhaba
    Alttaki kod ile 3 kritere göre filtreleme yapabiliyorum. Ama bu sayı 10 ve üzeri olursa alttaki kodu olasılıklı olarak çoğaltmak gerekiyor. Bunun daha prafik bir yöntemi yok mu?

    $filtreharf= guvenlik($_GET["harf"]);
    $filtreil= guvenlik($_GET["il"]);
    $filtreilce= guvenlik($_GET["ilce"]);
    
    if(!empty($filtreharf) && empty($filtreil) && empty($filtreilce)) $filtre= "where firmaniz like '$filtreharf%'";
    if(!empty($filtreharf) && !empty($filtreil) && empty($filtreilce)) $filtre= "where firmaniz like '$filtreharf%' and sehir= '$filtreil'";
    if(!empty($filtreharf) && empty($filtreil) && !empty($filtreilce)) $filtre= "where firmaniz like '$filtreharf%' and ilce= '$filtreilce'";
    if(!empty($filtreharf) && !empty($filtreil) && !empty($filtreilce)) $filtre= "where firmaniz like '$filtreharf%' and sehir= '$filtreil' and ilce= '$filtreilce'";
    
    if(empty($filtreharf) && !empty($filtreil) && empty($filtreilce)) $filtre= "where sehir= '$filtreil'";
    if(empty($filtreharf) && !empty($filtreil) && !empty($filtreilce)) $filtre= "where ilce= '$filtreilce' and ilce= '$filtreilce";
    if(empty($filtreharf) && empty($filtreil) && !empty($filtreilce)) $filtre= "where ilce= '$filtreilce'";;
    
    
    $SQLds = "Select * FROM yerlifirmalar $filtre";
  • 11-07-2013, 14:13:58
    #2
    Yapacağınız sorguları dizi (array) şeklinde ekleyip en son sorgulamadan önce hepsini birleştirebilirsiniz. Ben bu tarz çoklu sorgulamalar için bu yöntemi geliştirdim, problemsiz kullanıyorum.
  • 11-07-2013, 14:15:51
    #3
    Yukarıdaki örneğe göre bir uyarlama yapabilir misin sana zahmet?
  • 11-07-2013, 14:48:38
    #4
    RemiX adlı üyeden alıntı: mesajı görüntüle
    Yukarıdaki örneğe göre bir uyarlama yapabilir misin sana zahmet?
    Konu ile ilgili hazırladığım kodlar aşağıdadır, umarım faydası olur.

    <?php
    
    $filtreharf= guvenlik($_GET["harf"]);
    $filtreil= guvenlik($_GET["il"]);
    $filtreilce= guvenlik($_GET["ilce"]);
    
    $sorgu = array();
    if($filtreharf) { $sorgu[] = "firmaniz like '%".$filtreharf."%'"; }
    if($filtreil) { $sorgu[] = "sehir= '".$filtreil."'"; }
    if($filtreilce) { $sorgu[] = "ilce= '".$filtreilce."'"; }
    if($sorgu) {
        $sql_sorgu = ' where ';
        $sorgu_say = count($sorgu);
        $i = 1;
        foreach($sorgu as $sorgu_satir){
            $sql_sorgu .= $sorgu_satir;
            if($i != $sorgu_say) { $sql_sorgu .= ' and '; }
            $i++;
        }
    }
    unset($sorgu,$sorgu_satir);
    
    $SQLds = "Select * FROM yerlifirmalar $sql_sorgu"; ?>
    Belirlenen Kriter Sayısı: <?=$sorgu_say;?><br />
    SQL Sorgusu: <?=$SQLds;?>
  • 11-07-2013, 15:10:40
    #5
    Çok saol yardımlarından dolayı.