IPアドレスとさまざまなユニットに関する情報を保存しているデータベースの「search.php」に検索機能を構築しています。各ユニットには、データベース内の「カテゴリ」列があります。私の検索の選択肢は、テキスト フィールドでの検索、および/またはドロップダウン リストでのカテゴリの選択です。ドロップダウン リストでカテゴリを選択し、テキスト フィールドに何も入力しないと、正しい結果が得られます (選択したカテゴリを含むすべての行が返されます)。
しかし、テキスト フィールドに何かを入力しても、結果が得られません。
カテゴリのみを選択した場合のクエリ (この場合、「IP アドレス」がカテゴリとして選択されています):
SELECT dataid,
firstname,
lastname,
data.name dataname,
description,
ip,
TYPE,
TIMESTAMP
FROM DATA
INNER JOIN USER ON DATA.userid=USER.userid
WHERE TYPE='IP-adress'
AND DATA.name LIKE '%%'
AND description LIKE '%%'
AND ip LIKE '%%'
AND TYPE LIKE '%%'
AND firstname LIKE '%%'
AND lastname LIKE '%%'
ORDER BY TIMESTAMP DESC
私が望むように、これは選択したカテゴリを含むすべての行を返しています。
テキストフィールドに何かを入力したときのクエリ:
SELECT dataid,
firstname,
lastname,
data.name dataname,
description,
ip,
TYPE,
TIMESTAMP
FROM DATA
INNER JOIN USER ON DATA.userid=USER.userid
WHERE TYPE='IP-adress'
AND DATA.name LIKE '%test%'
AND description LIKE '%test%'
AND ip LIKE '%test%'
AND TYPE LIKE '%test%'
AND firstname LIKE '%test%'
AND lastname LIKE '%test%'
ORDER BY TIMESTAMP DESC
入力として「テスト」という単語を含む列がある組み合わせがありますが、結果が得られません。
私はかなり長い間それを行ってきましたが、以前は逆の問題があったと確信しています。カテゴリを選択したときに結果が得られなかったのです。
とにかく、別の目がここで私を助けてくれることを願っています. さらにコードが必要な場合は、リクエストしてください。