• 10-03-2019, 13:59:38
    #1
    herkese selamlar kolay gelsin arkadaslar

    çoklu içerik filtreleme olayını nasıl yapabilirim sahibinden gibi ama bir formda 10 tane select option da veri gelicek ve veritabanında 10 tane sutununda arama nasıl yapabilrim bu select optionların bazıları boş olabilir hata almadan böyle bir sorguyu nasıl yapabilirim birde 2 veya 3 den fazla tablolardan verileri cekerek posttan gelen verilerle karşılaştırıp listelemeyi nasıl yapabiliriim
    herkesden yorum bekliyorum

    şimdiden bilgisini paylaşan herkese teşekkürler
  • 11-03-2019, 17:59:50
    #2
    koskoca r10 da bilen kimse yokmu ya
  • 11-03-2019, 18:51:04
    #3
    Üyeliği durduruldu
    Genel bir soru olduğu için kimse cevap vermemiş alanlarınız nedir v.s.
    if else ile bile dediğiniz yapılır
  • 11-03-2019, 19:02:28
    #4
    select * from tablo where sutun1 like '%aranacak veri%' or sutun2 like '%aranacak veri%' or ........... diye uzar gider
    istediğiniz kadar tabloyu birleştirip istediğinizi arayabilir istediğinizi yapabilir mysql join ve mysql subquery araştırabilirsiniz.
    genel soruya ancak bu kadarcık genel cevap verebilebilir.
  • 11-03-2019, 19:06:35
    #5
    dncdn adlı üyeden alıntı: mesajı görüntüle
    Genel bir soru olduğu için kimse cevap vermemiş alanlarınız nedir v.s.
    if else ile bile dediğiniz yapılır
    zaman ayırıp cevap verdiğiniz için teşekkür ederim hocam

    trgino adlı üyeden alıntı: mesajı görüntüle
    select * from tablo where sutun1 like '%aranacak veri%' or sutun2 like '%aranacak veri%' or ........... diye uzar gider
    istediğiniz kadar tabloyu birleştirip istediğinizi arayabilir istediğinizi yapabilir mysql join ve mysql subquery araştırabilirsiniz.
    genel soruya ancak bu kadarcık genel cevap verebilebilir.
    öncelikle zaman ayırıp cevap verdiğiniz için teşekkürler, peki hocam bu armalarda aranacak veri gelmez ise boş gelir ise hata vermez değilmi
  • 11-03-2019, 19:11:08
    #6
    Üyeliği durduruldu
    $query = "";
    if ($aranacak1 != ""){ $query .= " and (sutun1 = '$aranacak')"; }
    if ($aranacak2 != ""){ $query .= " and (sutun2 = '$aranacak2')"; }
    
    $sql = $db->query("SELECT * FROM tablo WHERE ıvırzıvır = '1312312' $query");
  • 11-03-2019, 19:14:23
    #7
    dncdn adlı üyeden alıntı: mesajı görüntüle
    $query = "";
    if ($aranacak1 != ""){ $query .= " and (sutun1 = '$aranacak')"; }
    if ($aranacak2 != ""){ $query .= " and (sutun2 = '$aranacak2')"; }
    
    $sql = $db->query("SELECT * FROM tablo WHERE ıvırzıvır = '1312312' $query");
    bilgiler için teşekkürler hocam
  • 11-03-2019, 19:16:57
    #8
    ozgun58 adlı üyeden alıntı: mesajı görüntüle
    zaman ayırıp cevap verdiğiniz için teşekkür ederim hocam


    öncelikle zaman ayırıp cevap verdiğiniz için teşekkürler, peki hocam bu armalarda aranacak veri gelmez ise boş gelir ise hata vermez değilmi
    verebilir de vermeyebilir de emin değilim açıkcası boşluğu hiç arattırmadım veritabanında.
    en basit yöntem mantık şudur
    $aranacak_veriler = array();  //aranacak verileri query e aktarmak için boş bir array oluşturulur
    if($aranacak_verim_1!=""){ // veri 1 in boş olup olmadığıın basit kontrolu kontrol çeşitlendirilebilir
    $aranacak_veriler[] = " sutunadi like '%".$aranacak_verim_1."%' "; // sql sorgusundaki or dışındaki alanalar toplanır
    }
    if(!empty($aranacak_veriler )){ // toplanan aranacak verilere eklenen array olup olmadığı kontrol edilir
    $query = "select * from tablo where ".implode(" or ",$aranacak_veriler)." "; //aranacak veriler arasına or atılarak birleştirlir ham sql query oluşturulur
    ...
    }
  • 11-03-2019, 19:22:36
    #9
    trgino adlı üyeden alıntı: mesajı görüntüle
    verebilir de vermeyebilir de emin değilim açıkcası boşluğu hiç arattırmadım veritabanında.
    en basit yöntem mantık şudur
    $aranacak_veriler = array();  //aranacak verileri query e aktarmak için boş bir array oluşturulur
    if($aranacak_verim_1!=""){ // veri 1 in boş olup olmadığıın basit kontrolu kontrol çeşitlendirilebilir
    $aranacak_veriler[] = " sutunadi like '%".$aranacak_verim_1."%' "; // sql sorgusundaki or dışındaki alanalar toplanır
    }
    if(!empty($aranacak_veriler )){ // toplanan aranacak verilere eklenen array olup olmadığı kontrol edilir
    $query = "select * from tablo where ".implode(" or ",$aranacak_veriler)." "; //aranacak veriler arasına or atılarak birleştirlir ham sql query oluşturulur
    ...
    }
    bilgiler için çok teşekkür edrim hocam buarada boş olunca her sutunu getiriyor hata gibi bişe ama kucuktur buyuktur işareti koyunca boşmuş gibi algılıyor böylece hatada vermiyor bu işime yarar