我正在开发一个网站,人们可以在其中买卖新车或二手车。我想使用 php 和 sql 语句设置一个简单的过滤器,当然还有 html 选择框(下拉选项)。我已经获得了所有其他选择来帮助并相信我,这非常感谢。然而,我一直试图让“价格过滤器”发挥作用,却一无所获。下面是我在 html 中的选择框的样子。
<select name="price" size="0">
<option value="100000">Under $100,000</option>
<option value="<?php echo " BETWEEN '100000' AND '250000' "?>">Between $100,000 and $250,000</option>
<option value=">250000<500000">Between $250,000 and $500,000</option>
<option value=">500000<750000">Between $500, 000 and $750,000</option>
<option value=">7500000">Over $750,000</option>
</select>
这是我对价格变量的 $_POST 语句:
$price = mysql_real_escape_string($_POST['price']);
这是我的sql语句:
$sql = sprintf("SELECT * FROM `chjadb_vehicles` WHERE `v_make` LIKE '$make'AND `v_year` = '$year'AND `v_trans` LIKE '$trans'AND `condition` LIKE '$cond' AND `b_style` LIKE '$b_style' AND `v_price` '$price'");
之后我有一个应该打印结果的基本循环。现在根据我的理解(正确与否),当用户从下拉菜单中选择特定选项时,“选项值”中的值将传递给 $_POST 语句。之后,它应该将 $price 替换为 BETWEEN '100000' AND '250000' 之间的实际文本,从而完成查询语句。所以从 sql 语句打印出来的最终语句应该是:
"SELECT * FROM `chjadb_vehicles` WHERE `v_make` LIKE '$make'AND `v_year` = '$year'AND `v_trans` LIKE '$trans'AND `condition` LIKE '$cond' AND `b_style` LIKE '$b_style' AND `v_price` BETWEEN '100000' AND '250000'"`
但是我收到此错误:
BETWEEN \'100000\' AND \'250000\' 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 8 行的 '' BETWEEN \'100000\' AND \'250000\' '' 附近使用正确的语法
关于我哪里出错的任何想法?谢谢
问候, D. Ruddock