• 02-03-2015, 18:03:37
    #1
    if ( $home_search_mode=="postcode"){
    $postcode=substr($city,0,4);
    $stmt="SELECT a.*
    FROM
    {{view_merchant}} a
    WHERE
    post_code LIKE '%$postcode%'
    $and
    $sort_combine
    ";
    }

    arkadaşlar elimde böyle bir kod var.
    postcode ile arama yapıyorum.

    ancak postcode'u PE3 olanları aratmak istediğimde PE30'larda geliyor. NR1 arattığımda NR10,NR11,NR12... vs de geliyor. Bunu sanırım
    post_code LIKE '%$postcode%'
    şu kodu düzenleyerek yapacağım ama bu konuda ufak bir yardım lazım. Yardım edebilecekler konu altına yazarsa çok sevinirim.
  • 02-03-2015, 18:08:28
    #2
    Denermisiniz

    Alıntı
    if ( $home_search_mode=="postcode"){
    $postcode=substr($city,0,4);
    $stmt="SELECT a.*
    FROM
    {{view_merchant}} a
    WHERE
    post_code LIKE '$postcode'
    $and
    $sort_combine
    ";
    }
  • 02-03-2015, 18:22:02
    #3
    Aktifhosting adlı üyeden alıntı: mesajı görüntüle
    Denermisiniz
    Bu şekilde de denedim hocam. Ancak
    postcode "PE31 ,PE36" şu şekilde olanları sıralamıyor.
  • 02-03-2015, 18:24:03
    #4
    emreozalp adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde de denedim hocam. Ancak
    postcode "PE31 ,PE36" şu şekilde olanları sıralamıyor.
    Pardon ben sadece aradığınız şeyin gelmesini istediğinizi sandım, tam olarak aramada almak istediğiniz sonuç nedir?
  • 02-03-2015, 18:26:51
    #5
    postcode'un içinde yazan herhangi birşey arama sonucunda çıksın istiyorum hocam.
    Örneğin; PE3 arattıysam sadece PE3 aransın PE30'lar gelmesin.
    Ancak bazı postcode'lar şu şekilde "PE30,PE31,PE32" gibi. ve ben PE30 arattığımda bunun da gelmesini istiyorum. Yukarıdaki şekilde yaptığımızda '$postcode' olarak yaptığımızda PE3 kısmı oluyor ancak postcode kısmında birden fazla olanlar çıkmıyor.
  • 03-03-2015, 11:55:49
    #6
    Bir mysql döngüsü kurup substring_index fonksiyonı ile bu işlemi yapabilirsiniz.
    Eğer , ile ayrılmış postcode sayısı belli ise döngüye de gerek yok.

    http://sqlfiddle.com/#!2/cf101/1
  • 03-03-2015, 15:11:01
    #7
    Üyeliği durduruldu
    if ( $home_search_mode=="postcode"){
    $postcode=substr($city,0,4);
    $stmt="SELECT a.*
    FROM
    {{view_merchant}} a
    WHERE
    post_code ='$postcode'
    $and
    $sort_combine
    ";
    }

    deneyin Lütfen
  • 03-03-2015, 21:16:16
    #8
    post_code LIKE '%$postcode%' Burada en sondaki wildcard'ı (%) silip denersen;
    post_code LIKE '%$postcode' PE3 olanlar gelir.
    ------
    post_code LIKE '%$postcode%' içerisinde PE3 geçen herşeyi getirir.

    Burada daha detaylı açıklamalar bulabilirsin | http://dev.mysql.com/doc/refman/5.6/...functions.html
  • 04-03-2015, 08:45:56
    #9
    hddntha adlı üyeden alıntı: mesajı görüntüle
    post_code LIKE '%$postcode%' Burada en sondaki wildcard'ı (%) silip denersen;
    post_code LIKE '%$postcode' PE3 olanlar gelir.
    ------
    post_code LIKE '%$postcode%' içerisinde PE3 geçen herşeyi getirir.

    Burada daha detaylı açıklamalar bulabilirsin | http://dev.mysql.com/doc/refman/5.6/...functions.html
    Bu dediğiniz şekilde olursa PE3 diye arandığında PE36 olanları getirmez PE3 olanlar gelir, OK bunda sorun yok.
    Ancak bazı entrylerde PE3,PE12,PE36 gibi entryler var demiş arkadaş.
    Bu şekilde yazılırsa tag gibi ayıraçlar ile ayrılanları göstermez.
    Yukarıda bahsettiğim gibi sql döngüsü içerisinde substring_index kullanılmalı.