我正在为搜索引擎编写一个脚本,其中所有字段都需要能够自行提交信息或与其他字段结合提交信息。这些字段包括名称、城市、州、邮政编码、国家/地区、类别_1。代码如下:
"SELECT * FROM table WHERE Name LIKE '%$get_name%'
OR City LIKE '%$get_city%'
OR State LIKE '%$get_state%'
OR ZIP LIKE '%$get_zip%'
OR Country LIKE '%$get_country%'
OR Category_1 LIKE '%$get_category1%'
LIMIT 0, 10";
如果我从输入中回显所有变量,它们都会正确显示。但是,无论用户输入是什么,查询都会产生相同的结果。有什么建议么?看来是MYSQL查询本身的问题。
最佳答案
如果任何变量为空,您将获得所有结果。
与 Name LIKE '%%'
相同 = 所有结果。
您可以这样使用它:
$fields = array(
'Name' => $get_name,
'City' => $get_city,
'State' => $get_state,
'ZIP' => $get_zip,
'Country' => $get_country,
'Category_1' => $get_category1,
);
$query = "";
foreach($fields as $k => $data) {
if(trim($data) != '') {
$query .= ($query ? ' OR ' : 'WHERE ') . "$k LIKE '%% $data'";
}
}
if($query) {
$query = "SELECT * FROM table $query LIMIT 0, 10";
}
关于php - 无论输入如何,搜索引擎的查询都会返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35258609/