【发布时间】:2019-01-19 10:18:43
【问题描述】:
所以我只是想创建一个基本的搜索栏来增加我的 php 和 mysql 知识,但我很困惑。
我已经按照教程自己玩过代码,但我不知道搜索查询的工作方式会显示结果,但显示的结果与搜索查询完全不同,它会显示许多重复的结果。
我有 2 个不同的人,有 2 个不同的产品链接到他们,这就是它所显示的内容。
这是我正在搜索的查询。
这是我的代码,我希望有更多知识的人能够提供帮助,希望这不仅仅是我犯的一个简单的错误:O
<?php
$query = $_GET['q'];
// gets value sent over search form
$min_length = 3;
// you can set minimum length of the query if you want
if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then
$query = htmlspecialchars($query);
// changes characters used in html to their equivalents, for example: < to >
$query = mysql_real_escape_string($query);
// makes sure nobody uses SQL injection
$raw_results = DB::query("SELECT * FROM forsale, users WHERE forsale.productname LIKE '%" . $query . "%' OR users.username LIKE '%" . $query ."%'");
if (count($raw_results) > 0) {
foreach($raw_results as $results) {
echo $results['productname'];
echo $results['username'];
echo $results['price'];
}
}else{ // if there is no matching rows do following
echo "No results";
}
}else{ // if query length is less than minimum
echo "Minimum length is ".$min_length;
}
?>
非常感谢您。
【问题讨论】:
-
forsale和user表是如何链接的,您需要在 SELECT 中使用一些公共字段来告诉它如何组合行。 -
@NigelRen 它们通过 user_id 关系链接。
-
@JonnyGinaDommett 如果他们通过 user_id 关系链接,您应该使用“LEFT JOIN”子句来加入他们。
-
可能有两个原因:错误的查询或查询函数同时返回 assoc 和一个数组。让我们先用 MySQL 直接检查您的查询。如果查询没有问题,请检查您的查询函数php.net/manual/en/mysqli-result.fetch-all.php(阅读全文)。
标签: php html mysql duplicates searchbar