2

MySQLテーブルがあり、フィールドの1つが「カテゴリ」で、その値には記事、研究、引用などが含まれます。検索フォームには、ユーザーがこれらのカテゴリに対応するチェックボックスがあり、すべてではないにしてもどれを選択するかから検索します。

現在、次のスニペットは、テーブル全体を無差別に検索するために機能します (つまり、記事、研究、引用などを含む「カテゴリ」を含む行から)。しかし、人が「記事」のみを選択した場合、クエリは、対応する値を持つフィールド「カテゴリ」を持つ行のみを返しますか?

$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)");

上記の (この場合 $category は "Articles" になります) を追加しようとしましWHERE category = '$category'たが、うまくいきませんでした。

ところで: mysql/mysqli とセキュリティのユーザー入力の問題は認識しています。

4

2 に答える 2

1

私は問題を理解しました。以下の作品:

$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)
AND category = '$category'");
于 2012-08-14T23:10:24.917 に答える
0

サブクエリを使用することに反対しますか?

SELECT title,body
FROM(

SELECT title,body,category
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)

) x 
WHERE category = '$category'
于 2012-08-14T23:08:22.287 に答える