2017-05-09 11 views
0

データベース内のすべてのアーティストを最初の文字で返すようにしようとしているサイトに検索機能があります。ここで私が持っているコードです:sqlは最初の文字が正しく機能していない

$connect = mysqli_connect($host_name, $user_name, $password, $database); 

$arr = array(); 
$keywords = $connect->real_escape_string($_POST["keywords"]); 
$sql = "SELECT * FROM `karaoke` WHERE `artist` LIKE '" . $keywords . "%'"; 
$result = $connect->query($sql) or die($mysqli->error); 
if ($result->num_rows > 0) { 
    while ($obj = $result->fetch_object()) { 
     $arr[] = array("artist" => $obj->artist, "song" => $obj->song); 
    } 
} 
echo json_encode($arr); 

キーワードは2文字以上であるが、私は試してみて、ちょうど1文字で検索したとき、私は結果を得るていない場合は、この検索が正常に動作します。私はphpMyAdminコンソールにログインしようとしましたが、そこで検索を行っても問題ありません。結果が私のsearch-alpha.phpに返されない理由は何ですか?

+0

結果の前に 'var_dump($ sql)'という行を追加し、出力を投稿してください! – Hackerman

+0

'$ sql'をエコーし​​て、正しくフォーマットされていることを確認することができます – Derek

+0

$ sqlをエコーし​​てコピーし、phpMyAdminで実行しても問題なく動作しました。 –

答えて

0

私の推測では、フォーム側で入力文字列をパディングし、2つ以上の文字入力がしきい値を超えているようです。私はコメントで推奨されるように文字列をダンプするだろう。

+0

Chromeインスペクタを使用してヘッダーを確認しました。フォームデータは正確に正しいはずです。 。 。 –

関連する問題