2016-07-11 8 views
0

私は問題があります。私は、PHPとMySQLを使用して入力として手紙を与えることによって、テーブルからデータを検索しています。私は検索中にいくつかの問題に直面している。私は以下のコードを説明しています。PHPとMySQLで任意のチャプターを使用してテーブルから検索する方法

$searchKey=$_GET['searchKey']; 
$keyword = $searchKey.'%'; 
$sql =mysqli_query($connect,"SELECT * FROM db_restaurant_basic WHERE rest_name LIKE '".$keyword."' and special='".$special_id."' and city='".$city_id."' and status=1 ORDER BY member_id DESC "); 

ここで直接名を付けることができれば、検索機能が動作します。 rest_name The Joyceが1つあり、これを検索したいとします。ユーザーがThe Joyce or Theのような名前を直接入力している場合は、そのように動作しますが、ユーザーがこのように検索している場合、Joyceは動作しませんが、動作するはずです。同様にrest_name Toad 'n' Turtleもあります。ユーザーがToad or 'n' or Turtleを入力すると、現在のケースでは動作しません。この問題を解決するのを手伝ってください。この場合

+2

U $ searchKey。 '%'; ' – Saty

+0

'$ keyword = LOWER('% '。$ searchKey。'% ');' –

+1

あなたは[SQLインジェクション] (http://php.net/manual/en/security.database.sql-injection.php)の攻撃を防ぎます。実際には[Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。 –

答えて

0
$keyword = $searchKey.'%'; 

それはあなたの場合は、「$キーワード」

で終わるだけの単語を検索します。この場合

$keyword = '%'.$searchKey; 

「$キーワード」で始まる単語のみを検索します"$ keyword"を含む単語をすべて選択したい あなたはあなたのsearchKeyを

に変更する必要があります。
$keyword = '%'.$searchKey.'%'; 
関連する問題