php - 无论输入如何,搜索引擎的查询都会返回相同的结果

标签 php mysql

我正在为搜索引擎编写一个脚本,其中所有字段都需要能够自行提交信息或与其他字段结合提交信息。这些字段包括名称、城市、州、邮政编码、国家/地区、类别_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/

相关文章:

php - 比较一个字符串和一个 php 数组,只显示匹配项

PHP strtotime() 对于 JavaScript 日期字符串返回 false

php - 在 Laravel 中同时执行多个查询

php - 左连接不返回左表代码点火器中的所有行

php - 查找下次营业时间; mysql小时计算

mysql - 足球数据库模式

php - 使用应用模板在 XSLT 输出中保留 和其他特殊字符

php - MySQL PDO 连接,如何检索插入的 ID?

mysql - 我使用的是MySql数据库 我们可以获取最后发生死锁的信息吗?

sql - 在 MYSQL 中使用引用