IN句にこの奇妙な問題があります
変数 $fuel は、この php ページへの Ajax 呼び出しから取得されます。
$fuel = $_REQUEST['fuel'];
var_dump($fuel) = 'gas' ( for instance)
ここで、Ajax 呼び出しを開始する php ページで $fuel が選択されていない場合、次のコードを使用して、$fuel に可能なすべての値を挿入する必要があります。
if($fuel=='none'){
$fuel=array('gas','diesel','hybrid','electric');
$fuel=implode(',',$fuel);
}
これがクエリです。値が Ajax 呼び出しから直接取得される場合、つまり、たとえば $fuel = 'gas' の場合は問題なく動作します。
しかし、IF 句によって $fuel が生成され、$fuel = 'gas,diesel,hybrid,electric' の場合は空のセットになります。
SELECT * FROM vprice_range WHERE (power >= $power)
AND (price BETWEEN $low AND $high)
AND (fuel IN ('$fuel'))
AND (mileagemix < $mileage)
AND (emission_co2 < $co2)
AND (trunk >= $trunk)
これは無関係かもしれませんが、FIELD 'fuel' は ENUM フィールド ('gas','diesel','hybrid','electric') であることに注意してください。
私の知る限り、 $fuel は文字列として正しくフォーマットされています。
お知らせ下さい