0

私は MYSQL に精通していないので、ここでいくつかのガイダンスが必要です。複数の MYSQL WHERE ステートメントの説明を読みましたが、この正確な問題は見つかりませんでした。id、name、author、category、format などのフィールドを持つ study というテーブルがあります。

クエリを絞り込むためのチェックボックスを使用してフィルターを作成しています。特定の著者とカテゴリと形式を持つすべての研究を取得したいと考えています。私の問題は、クエリを作成するときに発生します。形式のみが選択されている場合、作成者が選択されていないため、クエリは空を返します。WHERE ステートメントを使用せずに AND ステートメントから結果を取得するにはどうすればよいですか? これが私がこれまでに持っているものです...

"SELECT * FROM estudos WHERE subcategory='$subcategory' AND author='$author' AND format='$format'"
4

7 に答える 7

0

where 条件を変数に割り当てる

例えば

if($categoryCheckbox){
 $whare.="AND category='$category'";
}

それをクエリに追加します

于 2013-11-06T14:46:48.173 に答える
0

次のコードを使用してクエリを生成できます

$q = "SELECT * FROM estudos WHERE format='$format'";
if ($author != '') { $q.= "AND author='$author'"; }
if ($subcategory != '') { $q.= "AND subcategory='$subcategory'"; }
于 2013-11-06T14:46:58.207 に答える
0

連結を使用してクエリを書き直すことをお勧めします。お気に入り:

$query= 'SELECT * FROM estudos WHERE 1';

if(isset($subcategory)) $query .= ' AND subcategory='.$subcategory;

if(isset($author)) $query .= ' AND author='.$author;

if(isset($format)) $query .= ' AND format='.$format;

于 2013-11-06T15:36:51.893 に答える