【问题标题】:Create a HTML Form to Search SQL Database创建一个 HTML 表单来搜索 SQL 数据库
【发布时间】: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


【解决方案1】:

为什么action是“#”? 如果您的 php 代码是另一个页面,请将名称放入操作中:

例如:

<form action="selectproduct.php" method="GET">

或者如果 php 代码在 html 页面上设置操作:

<form  action="<?php $PHP_SELF?>" method="GET">

【讨论】:

  • 谢谢你,是的,我的 php 代码与 html 相同。我将在稍后阶段移动它。
【解决方案2】:

对不起,我不能评论,但你能改变一下吗:

echo "<h3>...Something...";

echo $sql;

var_dump($sql)

当你使用 $_GET 和使用“实际数字”时比较 $sql 的值

肯定有区别 :-) ;-)

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多