1

我正在开发一个网站,人们可以在其中买卖新车或二手车。我想使用 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

4

3 回答 3

1

行后:

$sql = sprintf("SELECT * FROM `chjadb_vehicles` WHERE `v_make` L....

放:

echo "<br><br>".$sql."<br><br>";

暂且,使用页面时在浏览器中查看最终的SQL查询。找出错误在哪里,然后删除“ echo”语句。

于 2012-09-24T18:18:38.397 回答
0

我自己很新,但我认为您不需要在 BETWEEN 语句中的数字周围加上引号。我想你可以把它们拿出来。如果我错了,我相信我会得到纠正,但这是我的想法。

于 2012-07-11T20:48:33.473 回答
0

最后的`是错字吗?如果不是,那可能就是问题所在。

于 2012-07-11T20:50:08.393 回答