Filter php搜索引擎过滤器
我有一个简单的搜索引擎,它工作得很好,但是现在我想让用户选择一个要搜索的区域,我在数据库表中添加了一个名为location的字段,它保存了表中每个数据行的区域id,当用户在搜索时在输入字段中插入区域id时,具体结果将根据id显示,但我在查询时遇到了问题,因为我的查询可能不正确,我进行了测试,所谓的过滤器在某种程度上起作用,但它显示了两个错误,注意:未定义索引:userID在…和注意:未定义索引:name在…中,我知道这是因为我的查询方式,所以:Filter php搜索引擎过滤器,filter,search-engine,Filter,Search Engine,我有一个简单的搜索引擎,它工作得很好,但是现在我想让用户选择一个要搜索的区域,我在数据库表中添加了一个名为location的字段,它保存了表中每个数据行的区域id,当用户在搜索时在输入字段中插入区域id时,具体结果将根据id显示,但我在查询时遇到了问题,因为我的查询可能不正确,我进行了测试,所谓的过滤器在某种程度上起作用,但它显示了两个错误,注意:未定义索引:userID在…和注意:未定义索引:name在…中,我知道这是因为我的查询方式,所以: 我做错了什么 是否可以使用一个查询使所有代码都工作
<form method="POST" action="">
<input type="text" name="search">
<input type="text" name="location">
<button type="submit" name="submit">search</button>
</form>
<?php
require_once 'db.php';
if(isset($_REQUEST['submit'])) {
$search = str_replace(array('%','_'),'',$_POST['search']);
if ($search){
if (isset($_POST["location"])){
$location= $_POST["location"];
$query = "SELECT * FROM shoplist WHERE name LIKE :search OR userID LIKE :search";
$much = $muc->prepare($query);
$much->bindValue(':search', '%' . $search . '%', PDO::PARAM_INT);
$much = $muc->prepare('SELECT location from shoplist WHERE location =:location');
$much->bindParam(':location', $location);
$much->execute();
if ($much->rowCount() > 0) {
$result = $much->fetchAll();
foreach( $result as $row ) {
$userID = $row['userID'];
$name = $row['name'];
$location= $row['location'];
}
}
}
}
}
?>
搜索
简单的事情总是正确的答案:
更改为:
$query = "SELECT * FROM shoplist WHERE name LIKE :search OR userID LIKE :search";
$much = $muc->prepare($query);
$much->bindValue(':search', '%' . $search . '%', PDO::PARAM_INT);
$much = $muc->prepare('SELECT location from shoplist WHERE location =:location');
$much->bindParam(':location', $location);
为此:
$query = "SELECT * FROM shoplist WHERE location=:location AND (name LIKE :search OR userID LIKE :search)";
$much = $muc->prepare($query);
$much->bindValue(':search', '%' . $search . '%', PDO::PARAM_INT);
$much->bindParam(':location', $location);