【发布时间】:2012-07-11 20:43:07
【问题描述】:
我正在开发一个网站,人们可以在该网站上买卖新车或二手车。我想使用 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. 鲁道克
【问题讨论】:
-
你为什么不直接使用
WHERE v_price >= 100000 AND v_price <= 250000? -
什么是“选择 boes”?
-
那应该是“选择框”...对不起,错字更正...当我使用您选择的语句时,我收到以下 php 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 8 行的 ''>= 100000 AND
v_price