このようなコードと、ユーザーがチェック可能な形式で選択する変数があります
SELECT
FROM
WHERE
product = 'Super Model'
AND Model = 'Model1'
OR Model = 'Model2'
OR Model = 'Model3'
OR Model = 'Model4'
GROUP BY
チェックリストは次のようになります。
モデルを選択:
- モデル1
- モデル2
- モデル3
- モデル4
このクエリを動的にしたい。これについては、switch case ステートメントを作成します。
switch ($model) {
case "Model1":
$models = " AND Model = 'Model1' ";
break;
case "Model2":
$models = " OR Model = 'Model2' ";
break;
case "Model3":
$models = " OR Model = 'Model3' ";
break;
case "Model4":
$models = " OR Model = 'Model4' ";
break;
}
ただし、問題があります: 1. 1 つの変数に対してのみ機能します 2. ユーザーがモデル 2 とモデル 3 などを選択すると、文字列は OR ステートメントで始まります。
私はこのようなもので試しました:
$models = " AND '.$model[0].' OR '.$model[1].' OR '.$model[2].' OR '.$model[3].' OR '.$model[4].' ";
次に $models を WHERE ステートメントに入れましたが、機能しません。そして、私は問題に気付きました: 1. ユーザーが 2 つのモデルのみを選択する場合、おそらくステートメントは次のようになります: " AND Model2 OR Model3 OR OR OR " 2. 動的ではありません。配列内で「sth」を実行します。
おそらくforeach?しかし、この AND を最初に処理し、他のモデル間で OR を処理するにはどうすればよいでしょうか?
どんな助けでも感謝します。