2017-04-10 9 views
0

における句の結果と同じように私は以上の16K結果とテーブルの行の「ラボ」を探しています名前フィルタリングするには、このコードを持っている:私は最初の2以上を挿入したときに問題があるmysqliの

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
$mysqli->set_charset("utf8"); 

$text = $mysqli->real_escape_string($_GET['term']); 

$query = "SELECT name FROM labs WHERE name LIKE '%$text%'"; 
$result = $mysqli->query($query); 
$json = '['; 
    $first = true; 
    while($row = $result->fetch_assoc()){ 
     if (!$first) { $json .= ','; } else { $first = false; } 
     $json .= '{"value":"'.$row['name'].'"}'; 
    } 
$json .= ']'; 
echo $json; 

を私がderを置いた場合、その結果は私にはderという名前のデータしか表示されないようにする必要がありますが、現在は常に全行を表示します。

答えて

0

最小単語長は、InnoDBではデフォルトで3に設定されています。これにより、3文字以下の文字数を入力すると、すべての結果が返されることがあります。以下の参考文献を参照してください。あなたが左から右方向に一致させたい場合、あなたは

$query = "SELECT name FROM labs WHERE name LIKE '$text%'"; 
のようにそれを使用することができます増加数

https://dev.mysql.com/doc/refman/5.7/en/fulltext-fine-tuning.html

を試してみてください