私は検索フィールドを持っています。その単一のテキストボックスを使って、ユーザーは名前でギャラリーと画像の両方を探すことができます。私が抱えている問題は、たとえ構文がうまくいてもエラーがなくても、私のクエリで結果を得ることができないようです。良いSQL検索を行うにはどうすればよいですか?
私のグループ名は "Liten gruppe!"で、検索文字列は "liten"です。大文字小文字を区別しない検索の場合、検索文字列と結果文字列の両方が小文字に切り替わります。
文法のなかの何かが、私が期待していないことをしているに違いありません。任意の助け
SELECT `id`
FROM gallery_groups
WHERE `name` LIKE LOWER('%$searchstring%') OR
`date_created` LIKE LOWER('%$searchstring%');
おかげ
EDIT:OK、それは愚かな間違いでした。しかし、補正がまだ結果が得られていない:
SELECT `id`
FROM gallery_groups
WHERE LOWER(`name`) LIKE '%$searchstring%' OR
LOWER(`date_created`) LIKE '%$searchstring%';
EDIT:興味深いです!結果のクエリを直接PhpMyAdminにコピーすると、一致します。しかし、PHPから呼び出されたときには行が返されることはありません。どのようにすることができますか?
編集:OK、実際には1つの結果が返されます。結果内のすべてのフィールドがfetch_objectを(実行している以外の結果がある場合、どのように私はおそらく知ることができ、nullの場合)
object(mysqli_result)[3]
public 'current_field' => null
public 'field_count' => null
public 'lengths' => null
public 'num_rows' => null
public 'type' => null
:私は、結果のダンプ出力にだまされましたか?
WHERE `name` COLLATE UTF8_GENERAL_CI LIKE '%$searchstring%' OR
`date_created` COLLATE UTF8_GENERAL_CI LIKE '%$searchstring%';
デバッグのためのAS:彼らは見るために、データベースに渡されると、あなたが本当に意図した検索文字列を使用している場合、SQLクエリを印刷してみますがLOWER
なしMYSQLに大文字小文字を区別しない検索を発行することができ
検索文字列がクエリに挿入されていますか? –
あなたのコードが生成するクエリを印刷して、PHPの外のデータベースに対して直接実行しようとしましたか?それは通常、簡単に間違いを起こします。 –
@Sarah Happy:はい、私はそれをしました。 @ダン・グロスマン:私はそれをしていない。それを試してみましょう – Hubro