【发布时间】:2015-01-06 13:28:06
【问题描述】:
我有一个带有下拉选项的 HTML 表单,该表单将值传递给我与表单在同一页面上的 php sql 查询。如果我将值与 LIKE 语句一起使用,但当我尝试将发布的值与 BETWEEN 或 >= 一起使用时,这将起作用。如果我尝试使用实际值,它确实有效。有人可以建议我做错了什么。我已经发布了我的 HTML 表单,其中包含 SQL 查询的 PHP 代码。
HTML:
<html><form action="#" method="GET"></select>
<select name="MinPrice">
<option value="">Min Price</option>
<option value="">No Min</option>
<option value="500">£500</option>
<option value="600">£600</option>
<option value="700">£700</option>
<option value="800">£800</option>
<option value="900">£900</option>
<option value="">Show All</option>
</select>
<select name="MaxPrice">
<option value="">Max Price</option>
<option value="">No Max</option>
<option value="500">£500</option>
<option value="600">£600</option>
<option value="700">£700</option>
<option value="800">£800</option>
<option value="900">£900</option></select></form></html>
PHP:
<?php
mysql_connect("****", "****", "****");
mysql_select_db("****");
$sql = mysql_query("SELECT * FROM Product WHERE Price >= '%$_GET[MinPrice]%'");
echo "<h3>...Something...";
或者
<?php
mysql_connect("****", "****", "****");
mysql_select_db("****");
$sql = mysql_query("SELECT * FROM Product WHERE Price BETWEEN '%$_GET[MinPrice]%' AND '%$_GET[MaxPrice]%'");
echo "<h3>...Something...";
我没有得到任何结果,但是如果我将 GET 值与实际数字交换,它可以按我的意愿工作。有人对此有什么建议吗?
我已经尝试了我所知道的一切
【问题讨论】:
-
显示具有价格价值的表格结构
-
您在从两个查询中删除 '%' 后是否尝试过?
-
删除查询中的 % 符号。你只在使用 LIKE 时使用这些(afaik)。
-
小心 - 你的解决方案容易出现 sql 注入 stackoverflow.com/questions/60174/…
-
为什么要标记 MySQL 和 SQL Server?
标签: php html mysql sql-server