2012-01-18 8 views
0

私たちの検索候補に問題があります。ウェブサイトで提案をクリックするたびに、検索クエリの前にスペースが表示され、クエリが失敗します。検索ボックスの候補を検索クエリの前に入力してください

我々が提案を使用したコードはこれです:

$query = $db->query("SELECT DISTINCT productnaam FROM product WHERE merk LIKE  '$queryString%' LIMIT 10"); 
      if($query) { 
       // While there are results loop through them - fetching an Object (i like PHP5 btw!). 
       while ($result = $query ->fetch_object()) { 
        // Format the results, im using <li> for the list, you can change it. 
        // The onClick function fills the textbox with the result. 

        // YOU MUST CHANGE: $result->value to $result->your_colum 
        echo '<li onClick="fill(\''.$result->merk.'&nbsp;'.$result->productnaam.'\');">' 
        .$result->merk.'&nbsp;'.$result->productnaam.''.'</li>'; 
       } 
      } else { 
       echo 'ERROR: There was a problem with the query.'; 
+0

'$ queryString'はどこから来たのですか? (コードを表示) – greut

答えて

0

は(トリムを試してみてください)

$queryString = trim($queryString); 

トリム()関数は、の両側から空白や他の事前に定義された文字を削除文字列。

+0

これは私のクエリ文字列の由来です:(私はトリムを追加しましたが、うまくいきません) //投稿されたクエリ文字列はありますか? \t \t IF(ISSET($ _ POST [ 'のqueryString'])){ \t \t \t $のqueryStringは=トリム($ DB-> real_escape_string($ _ POST [ 'のqueryString'])); – Forza

0

は下に指定Sameera Thilakasiriとしてトリム()関数を試してみても"SELECT DISTINCT productnaam FROM product WHERE merk LIKE '%$queryString%' LIMIT 10"のようなものに両側にパーセント記号をクエリを更新し、あなたの入力を開始したレコードとは対照的に、あなたのクエリは、あなたの入力を含むレコードを選択することを保証します。

怒鳴るができます

// This query will look for records that start with "sa"  
select * from table where name like 'sa%' 

// This query will look for records that contain "sa"  
select * from table where name like '%sa%' 

// This query will look for records that end with "sa"  
select * from table where name like '%sa' 

希望をあなたを助けるかもしれないSQL LIKEを条件に、さらにいくつかの説明です!

関連する問題