• 02-06-2020, 22:40:04
    #1
    Merhaba Mysql veritabanından yapmak isteediğim bir sorguda

    1- gelenveri="mazda-3-avantajli-fiyat"
    2- veri tabanında menuadi alanında ki veri ise "Mazda 3 Avantalı Fiyat"

    select * FROM menuler where menuadi like '%"& gelenveri&"%'

    bunu nasıl eşleştirebilirim.

    Şimdiden teşekkürler
  • 02-06-2020, 22:41:35
    #2
    karşılaştırdığınız verileri aynı yaparsanız işiniz daha kolay olur. böylece like yerine eşit olanı sorgularsınız sistem daha az yorulur.
  • 02-06-2020, 22:43:46
    #3
    emrah24 adlı üyeden alıntı: mesajı görüntüle
    Merhaba Mysql veritabanından yapmak isteediğim bir sorguda

    1- gelenveri="mazda-3-avantajli-fiyat"
    2- veri tabanında menuadi alanında ki veri ise "Mazda 3 Avantalı Fiyat"

    select * FROM menuler where menuadi like '%"& gelenveri&"%'

    bunu nasıl eşleştirebilirim.

    Şimdiden teşekkürler
    Str_replace ile - işaretini boşluğa çevirip like ile çağırabilirsiniz
  • 02-06-2020, 22:47:07
    #4
    hyPerdarKness adlı üyeden alıntı: mesajı görüntüle
    karşılaştırdığınız verileri aynı yaparsanız işiniz daha kolay olur. böylece like yerine eşit olanı sorgularsınız sistem daha az yorulur.
    haklısınız o kısmı düzeltebilirim ancak veritabanında ki alanı sorgu esasında replace edebilir miyim ?



    alonesoftware adlı üyeden alıntı: mesajı görüntüle
    Str_replace ile - işaretini boşluğa çevirip like ile çağırabilirsiniz
    dediğinizi denedim ancak türkçe karakterleri nasıl yapacağız veya ? ! gibi simgelerde başlıklarda oluyor
  • 02-06-2020, 22:49:29
    #5
    emrah24 adlı üyeden alıntı: mesajı görüntüle
    haklısınız o kısmı düzeltebilirim ancak veritabanında ki alanı sorgu esasında replace edebilir miyim ?

    dediğinizi denedim ancak türkçe karakterleri nasıl yapacağız veya ? ! gibi simgelerde başlıklarda oluyor
    like kullandığınızdatürkçe karakter problemi yaşamazsınız. O yüzden like kullanmalısınız dedim.
    Str_replace fonksiyonunu array ile kullanıp muhtemel karakterleri değiştirerek standart hale getirebilirsiniz
  • 02-06-2020, 22:53:10
    #6
    emrah24 adlı üyeden alıntı: mesajı görüntüle
    haklısınız o kısmı düzeltebilirim ancak veritabanında ki alanı sorgu esasında replace edebilir miyim ?
    alttaki seflink oluşturma fonksiyonunu işlem sırasında değişken üzerinde kullanırsanız işinizi görür. ancak sistemi fazla yormamak açısından menuad yanına harici bir sütun daha açarak seflink yazılı hallerini de kaydedip, daha sonra eşit sorgusu ile kullanmanız bence daha mantıklı olur.

    function seflink($url){
    $url = trim($url);
    $find = array('<b>', '</b>');
    $url = str_replace ($find, '', $url);
    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
    $find = array(' ', '&amp;quot;', '&amp;amp;', '&amp;', '\r\n', '\n', '/', '\\', '+', '<', '>');
    $url = str_replace ($find, '-', $url);
    $find = array('.','..', '...');
    $url = str_replace ($find, '', $url);
    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
    $url = str_replace ($find, 'e', $url);
    $find = array('í', 'ì', 'î', 'ï', 'I', 'Í', 'Ì', 'Î', 'Ï','İ','ı');
    $url = str_replace ($find, 'i', $url);
    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
    $url = str_replace ($find, 'o', $url);
    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
    $url = str_replace ($find, 'a', $url);
    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
    $url = str_replace ($find, 'u', $url);
    $find = array('ç', 'Ç');
    $url = str_replace ($find, 'c', $url);
    $find = array('ş','Ş');
    $url = str_replace ($find, 's', $url);
    $find = array('ğ','Ğ');
    $url = str_replace ($find, 'g', $url);
    $find = array('?');
    $url = str_replace ($find, '', $url);
    $find = array('/[^A-Za-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    $repl = array('', '-', '');
    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);
    $url = strtolower($url);
    return $url;
    }
  • 02-06-2020, 22:57:30
    #7
    hyPerdarKness adlı üyeden alıntı: mesajı görüntüle
    alttaki seflink oluşturma fonksiyonunu işlem sırasında değişken üzerinde kullanırsanız işinizi görür. ancak sistemi fazla yormamak açısından menuad yanına harici bir sütun daha açarak seflink yazılı hallerini de kaydedip, daha sonra eşit sorgusu ile kullanmanız bence daha mantıklı olur.

    function seflink($url){
    $url = trim($url);
    $find = array('<b>', '</b>');
    $url = str_replace ($find, '', $url);
    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
    $find = array(' ', '&amp;quot;', '&amp;amp;', '&amp;', '\r\n', '\n', '/', '\\', '+', '<', '>');
    $url = str_replace ($find, '-', $url);
    $find = array('.','..', '...');
    $url = str_replace ($find, '', $url);
    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
    $url = str_replace ($find, 'e', $url);
    $find = array('í', 'ì', 'î', 'ï', 'I', 'Í', 'Ì', 'Î', 'Ï','İ','ı');
    $url = str_replace ($find, 'i', $url);
    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
    $url = str_replace ($find, 'o', $url);
    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
    $url = str_replace ($find, 'a', $url);
    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
    $url = str_replace ($find, 'u', $url);
    $find = array('ç', 'Ç');
    $url = str_replace ($find, 'c', $url);
    $find = array('ş','Ş');
    $url = str_replace ($find, 's', $url);
    $find = array('ğ','Ğ');
    $url = str_replace ($find, 'g', $url);
    $find = array('?');
    $url = str_replace ($find, '', $url);
    $find = array('/[^A-Za-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    $repl = array('', '-', '');
    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);
    $url = strtolower($url);
    return $url;
    }
    teşekkür ederim değerli bilgiler için sanırım en iyisi sizin dediğiniz baya hız farklı olacaktır veriler artınca like sorgusu çok fazla işe yaramayacaktır sanırım