1

我正在尝试根据用户是否在搜索栏中输入与包含项目描述的变量匹配的字符从表中检索数据。

我正在使用 PHP 中的 MySQL 执行此操作,这是我到目前为止的检索代码:

$ItemDesc = $_POST['ItemDesc'];

$query = "select * from StockItems where ItemDesc LIKE '%$ItemDesc%'";

但是我没有得到正确的结果,我得到的是 SQL 表中的所有数据,尽管一直输入不匹配的字符。

因此,例如,如果在 SQL 表中我有一个字段并且 ItemDesc 行包含“战斗”,如果我在搜索框中输入“xxx”并单击输入,则始终会检索到该字段。

4

2 回答 2

3

你没有$ItemDesc设置你的变量,所以它看起来像 mysql

select * from StockItems where ItemDesc LIKE '%%'

尝试 print_r 或 var_dump 的内容,$ItemDesc看看$_POST事情在哪里下降。但是在发出查询之前确保 $ItemDesc 至少满足一些条件(最小长度)是个好主意

还要清理来自用户空间的输入

于 2013-05-22T17:29:11.880 回答
-2
$item = $_POST['itemDesc'];

$result = mysql_query("select * from StockItems where ItemDesc LIKE '%$item%'");

此查询是选择用户为itemdesc字段中所有位置分配字符的结果。

于 2014-09-27T04:28:30.440 回答