• 03-10-2023, 12:06:03
    #1
    Merhaba,

    Arama yapıyorum ama şöyle bir soru takıldı kafama. Arama kısmında şehir ve semt ile arama yaptırıyorum ama kullanıcı sadece şehirde seçebilir buna göre arama sorgusunu nasıl yapmalıyım?

    Şehir seçti aldım semt seçmedi o zaman tüm semtleri getirmesi gerekir bunun için sql sorgusunu tek sorgu ile yapabilirmiyim yoksa if else ile kontrol sağlayıp iki sorgumu yapmalıyım?

    ornek select * from tablom where sehir=2 and semt=6 burada semt seçmediyse sorguyu ayarlayabilirmiyim?
  • 03-10-2023, 12:21:44
    #2
    her ikisi seçili ise

    select * from tablom where sehir=2 and semt=6
    sadece şehir seçili ise

    select * from tablom where sehir=2
  • 03-10-2023, 12:34:53
    #3
    Bunu İf else ile ayırıp iki sorgu yapmadan bir çözüm varmı onu soruyorum?

    kucukomer adlı üyeden alıntı: mesajı görüntüle
    her ikisi seçili ise

    select * from tablom where sehir=2 and semt=6
    sadece şehir seçili ise

    select * from tablom where sehir=2
  • 03-10-2023, 13:18:40
    #4
    SELECT * FROM tablom
    WHERE 1 = 1
    AND ( tablom.sehir LIKE ? OR tablom.semt LIKE ? )
  • 03-10-2023, 14:58:48
    #5
    sorguya bir değişken ile şehir/semt varsa veya yoksa ek where ekleyebilirsiniz

    $sql_text = '';
    
    if($_GET['sehir'] != ''){
         if($sql_text != ''){
              $sql_text .= " AND";
         }else{
              $sql_text .= ' WHERE';
         }
         $sql_text .= " sehir = '".$_GET['sehir']."'";
    }
    
    if($_GET['semt'] != ''){
         if($sql_text != ''){
              $sql_text .= " AND";
         }else{
              $sql_text .= ' WHERE';
         }
         $sql_text .= " semt = '".$_GET['semt']."'";
    }
    
    $query = "SELECT * FROM tablo".$sql_text;
  • 03-10-2023, 15:44:42
    #6
    Çok basit, uzun uzun koda gerek yok en kısa ve öz hali budur.

    if($semt){
    $semt = "AND semt='".$semt."'";
    }else{
    $semt = "";
    }

    $sql = "select * from tablom where sehir=2 and semt='".$semt."'";
  • 05-10-2023, 08:52:04
    #7
    Teşekkür ederim arkadaşlar sorumun cevabını alamadım sorum if else kullanmadan bir yöntem varmıydı ama hepinize Teşekkür ederim zaman ayırıp yazdığınız için. R10+