1

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 は文字列として正しくフォーマットされています。

お知らせ下さい

4

3 に答える 3