Mysql tam yardım

3 Cevap php

Ben masa aramak için kullanıyorum:

  if ($querystring!=''){$query_cont .= " AND MATCH (headline) AGAINST ('$querystring')"; }

Şey 'başlık' alanına Ben 'BMW' demek bir değere sahip olduğunu. Ben arama alanına BMW girdiklerinde, o "$ querystring = 'BMW'", hiçbir sonuç bulundu.

Ben 'başlık' alanına 'tam metin' dizinini belirledik ve ben açıklamada 'INSERT INTO' basit bu tabloya değerler ekleyebilirsiniz.

Bu konuda bana yardım edin ...

Eğer daha fazla girdi ihtiyacınız varsa bana bildirin!

3 Cevap

3 veya daha az ft_min_word_len olarak değiştirin ve dizin yeniden.

ft_min_word_len (ki 4 varsayılan olarak) daha kısa kelimeler endeksli alamadım.

Update:

Bu hotlink iyi bir alışkanlık olarak kabul edilir, bu zorunlu XKCD sizinki gibi bir kod içeren sorulara komik:

Bilmeniz gereken iki şey vardır:

Ben bu şeylerden biri beklediğiniz sonuçları elde engelliyor sanıyorum.

Ayrıca uygulama Sql injections korunduğuna emin olun

MySQL tam metin dizinleyicisi varsayılan olarak üç harfli kelimeleri yok sayar. (; Beklediğinizden çok daha fazla stopwords da vardır this question daha fazla bilgi için bakınız) 3 harfli kelime endeksli almak için ft_min_word_len yapılandırma ve yeniden dizin sütunları değiştirmek gerekir .

(Ayrıca, bir SQL injection açığı olmak sizin yukarıdaki kodu durdurmak için mysql_real_escape_string veya parametreleri sorguları kullanmanız gerekir.)