に一致する選択列は、私はこのような文字列である列parameters
を持ってproducts
と呼ばれます。すべてのIDは#
で区切られています。いくつかのパラメータは=
であり、このパラメータは特定の値(整数のみ)を持つことを意味します。MySQLの私のテーブルではパラメータ
ID 4
のパラメータは値10
です。
$_GET["parameters"]
に保存されたパラメータに一致する製品を選択したいと考えています。保存されたパラメータのパターンは、例えば2-6-5>10-4<5
です。パラメータ4には値10があり、これは5より大きいので、上記の文字列の例は一致しません。
私はパラメータIDでテーブルから製品を選択する方法を知っています。このように:
$parameters = explode("-", $_GET["parameters"]);
$search = "";
foreach ($parameters as $parameter) {
if (preg_match("/^\d+$/", $parameter)) {
$search .= "AND parameters LIKE '%#$parameter#%' ";
}
}
$search = preg_replace("/^AND\s/", "", $search);
$sql = "SELECT * FROM products WHERE $search";
...
しかし、私はパラメータ5>10
と4<5
でこれを解決する方法を、知りません。私は、パラメータ2、6、5が10以上、4が5以下の製品を手に入れたいと思っています。これはMySQLでも可能ですか?はいの場合、どうですか?
Ew ...もしあなたがこれを行うのが難しいと思っているのなら、おそらくそれはひどく間違っているからです。 –
@NiettheDarkAbsolに加えて、すべての製品に** ID別の列**? – Jan
'LIKE'は正規表現ではありません。それはより多くのグロブのようです。 – Laurel