0

我有一个页面,功能是搜索数据。

我的表格列中有这样的:

form_no | status
1       | WW025687732
2       | QR1233545AB

获取函数:

$status = $_GET['status_sheet'];

我使用这样的SQL:

$query = mysql_query("SELECT * FROM t_test WHERE status LIKE '$status%'");

当我使用更多文本或数字搜索 WW025687732 时,例如 WW025687732-1224AS。它无法运行。如果状态包含 WW025687732 并且如果我添加更多类似 WW025687732-1224AS 的文本,它将显示。

4

3 回答 3

0

试试喜欢

$query = mysql_query("SELECT * FROM t_test WHERE status LIKE '%$status%'");

看到这个链接

长文本需要是全文搜索

于 2013-05-23T04:56:18.227 回答
0

尝试

$query = mysqli_query("SELECT * FROM t_test WHERE status = SUBSTRING('$status', LENGTH(status));");
于 2013-05-23T05:12:41.583 回答
0

我认为正在发生的事情是变量分配没有正确发生并且mysql正在获取SELECT * FROM t_test WHERE status LIKE '%'

仔细检查您的表单方法并确保它实际上是get并且搜索字段的变量名称是status_sheet.

此外,在将状态发送到查询之前确保您的状态至少包含一个字符也是一个好主意:

if (strlen($status) > 0){
    echo "Error you must specify something for this to work.";
} else { 
    $query = mysql_query("SELECT * FROM t_test WHERE status LIKE '$status%'");
    .... show results and whatever ....
}
于 2013-05-23T05:13:53.050 回答