• 30-09-2017, 09:45:07
    #1
    Merhaba arkadaşlar, üzerinde çalıştığım bir projede takıldığım bir nokta oldu. Php ye ilk defa bu proje ile başladım. O nedenle yanlış tabirlerim olursa kusura bakmayın. Görsellerle sorunumu açıklamaya çalışayım;

    Şu şekilde bir arama bölümüm var.

    Bunun çalışması için kullandığım kodlar da şu şekilde;
     if (isset($_POST['emlakaradetay'])) {
                                        $emlaksor=$db->prepare("SELECT * from emlak where emlak_il=:emlak_il AND emlak_durum=:emlak_durum AND emlak_tip=:emlak_tip AND emlak_fiyat>=:enaz AND emlak_fiyat<=:encok AND emlak_m2>=:enazm AND emlak_m2<=:encokm AND emlak_oda=:emlak_oda AND emlak_otopark=:emlak_otopark AND emlak_yil=:emlak_yil");
                                        $emlaksor->execute(array(
                                           'emlak_il' => $_POST['emlak_il'],
                                           'emlak_durum' => $_POST['emlak_durum'],
                                           'emlak_tip' => $_POST['emlak_tip'],
                                           'enaz' => $_POST['enaz'],
                                           'encok' => $_POST['encok'],
                                           'enazm' => $_POST['enazm'],
                                           'encokm' => $_POST['encokm'],
                                           'emlak_oda' => $_POST['emlak_oda'],
                                           'emlak_otopark' => $_POST['emlak_otopark'],
                                           'emlak_yil' => $_POST['emlak_yil']         
                                       ));
    Bu kod yapısıyla bütün bilgileri girerek arama sonuçlarını listeliyor. Benim istediğim ise bütün bilgileri girme zorunluluğu olmadan arama yapması. Yani sadece il, durum, tip bilgilerini girdiğinde bunlarla eşleşen sonuçları listelesin. Kodların bu haliyle bir bilgiyi bile girmediğimde arama sonucunda hiç veri bulmuyor.
    İnternette bir kaç gündür arıyoruma ama çözümünü bulamadım. Bu konuda yardımcı olabilirseniz çok memnun olurum. Şimdiden ilgilenen herkese teşekkürler. İyi forumlar.
  • 30-09-2017, 10:06:18
    #2
    where değil like kullanırsan %% sorunu çözersin
  • 30-09-2017, 10:15:47
    #3
    birolkahraman adlı üyeden alıntı: mesajı görüntüle
    where değil like kullanırsan %% sorunu çözersin
    Teşekkür ederim. Vaktiniz varsa gönderdiğim kod üzerinde gösterme şansınız var mı?
  • 30-09-2017, 10:25:37
    #4
    = yerine LIKE YAZARSAN birde post parametrelerinin başına sonuna string % koyman yeterli

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 09:25:37 -->-> Daha önceki mesaj 09:24:53 --

    https://stackoverflow.com/questions/...e-query-in-pdo
  • 30-09-2017, 10:42:06
    #5
    birolkahraman adlı üyeden alıntı: mesajı görüntüle
    = yerine LIKE YAZARSAN birde post parametrelerinin başına sonuna string % koyman yeterli

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 09:25:37 -->-> Daha önceki mesaj 09:24:53 --


    https://stackoverflow.com/questions/...e-query-in-pdo
    Anladığım kadarıyla yapmaya çalıştım ama sonuç alamadım. Konuda da belirttiğim gibi PHP ye yeni başladığım için sanırım beceremedim. Mümkünse kod üzerinde dediğiniz değişiklikleri yaparak paylaşabilirseniz çok memnun olurum.
  • 30-09-2017, 12:42:22
    #6
    Üyeliği durduruldu
    FROM içinde aynı şekilde array a aktarıp implode yapabilirsiniz.
    $query = array();
    foreach($_POST as $key => $value){
        if ($value != "" || $value != "0"){ // Değer boş veya 0 değilse...
            $query[$key] = $value;
        }
    }
    $emlaksor->execute($query);
  • 02-10-2017, 10:20:43
    #7
    MorNetAjans adlı üyeden alıntı: mesajı görüntüle
    FROM içinde aynı şekilde array a aktarıp implode yapabilirsiniz.
    $query = array(); foreach($_POST as $key => $value){ if ($value != "" || $value != "0"){ // Değer boş veya 0 değilse... $query[$key] = $value; } } $emlaksor->execute($query);
    İlginiz için teşekkür ederim. Paylaştığım kod üzerinde gösterme şansınız var mı acaba? Söylediklerinizi uygulayabilmem için bilgim yeterli değil maalesef.
  • 02-10-2017, 10:52:02
    #8
    Üyeliği durduruldu
    uykusuzz35 adlı üyeden alıntı: mesajı görüntüle
    İlginiz için teşekkür ederim. Paylaştığım kod üzerinde gösterme şansınız var mı acaba? Söylediklerinizi uygulayabilmem için bilgim yeterli değil maalesef.
    Yazdığım kod paylaştığınız kod için zaten.
  • 02-10-2017, 11:00:25
    #9
    MorNetAjans adlı üyeden alıntı: mesajı görüntüle
    Yazdığım kod paylaştığınız kod için zaten.
    yazdığınız kodu benim paylaştığım kodun neresinde kullanıcam onu bilemiyorum işte.