PHP+MySQLでコードを書いていて、ユーザーが入るテーブルを使ってWebアプリを作っているところです。
以下のようないくつかの指定した条件(キーワード、カテゴリー、ユーザーランク等)で検索する方法はありますでしょうか?
・指定なし->(全件)
・キーワードで検索
・カテゴリーで検索
・ユーザーランクで検索
・キーワードとカテゴリーで検索
・キーワードとユーザーランクで検索
・カテゴリーとユーザーランクで検索
現在以下のような形で、if文で振り分けて実装していますが、これを1文のSQLでおこなうことはできないものでしょうか?
if (empty($name) && empty($category) && empty($rank)) {
$sql = "SELECT * FROM user";
} elseif ($name && empty($category) && empty($rank)) {
$sql = "SELECT * FROM user WHERE name like '%$name%'";
} elseif ($name && $category && empty($rank)) {
$sql = "SELECT * FROM user WHERE name like '%$name%' AND category = '$category'";
}
回答6件
あなたの回答
tips
プレビュー