2011-09-15 8 views
0

私は複数の辞書を含む私のウェブサイト用の新しい検索スクリプトに取り組んでいます。まず、私はあなたのコードの問題の一部をお見せしましょう、次に説明....Mysqlクエリで結果が得られるはずですが、

$sql = mysql_query("SELECT * FROM $tbl_name WHERE $field = '%$trimmed%' ORDER BY $field ".$sort." LIMIT ".$limits.", $max")or die(mysql_error()); 
$count = mysql_result(mysql_query("SELECT COUNT($field) FROM $tbl_name WHERE $field = '%$trimmed%'"),0); 

if ($count < 1){ 

$sql = mysql_query("SELECT * FROM $tbl_name WHERE $field LIKE '%$trimmed%' ORDER BY $field ".$sort." LIMIT ".$limits.", $max")or die(mysql_error()); 
$count = mysql_result(mysql_query("SELECT COUNT($field) FROM $tbl_name WHERE $field LIKE '%$trimmed%'"),0); 

} 

さて、理論的には、最初のクエリは、正確な結果を選択する必要がありますし、「LIKE」の結果を表示せずに表示します。しかし、それはしません。 LIKEの結果を表示するだけです。

そのすべてを削除して最初のクエリを残しても、結果は返されません。たとえそれがデータベースにあっても返されません。

たとえば、「if($ count <)」の後にあるすべての項目で「SHE」または「I」を検索して結果を得ることができますが、「非公式」「単数」などの単語が含まれます。しかし、これを削除すると、「SHE」と「I」を検索して、データベースに入っていても結果がまったく見つかりません。

ご協力いただければ幸いです。

答えて

2

最初のクエリで「$ trimmed」の前後にある「%」文字を削除します。

これが解決するかどうかを確認してください。

+0

しました!私はそんなことをやっていないと思っています。あなたはどれくらいの間これを乱しているのか信じられません。ありがとう! – Cory

+0

おっと、申し訳ありません。 – Cory

+0

探して見えませんでしたか?我々はすべてそこにいた。ありがとう。 –

関連する問題