我在使用PHP和SQL显示数据库中的文本时遇到了一些麻烦。下面是一个类似于我的脚本。如何消除MySQL中的重复搜索结果?
$search_split = explode(" ", $search); //$search is what user entered
foreach ($search_split as $searcharray) {
$searched = mysqli_query($connect, "SELECT * FROM people WHERE `description` LIKE '%$searcharray%'");
while($info = mysqli_fetch_array($searched)) {
echo $info['description'];
}
}
因此,例如,用户输入'他是男性'。我使用'爆炸'功能将这个词分为'他','是'和'男'三部分。之后,我在数据库中搜索与这三个词类似的词。但是,如果一行有全部三个字,它将显示该行三次。我怎样才能让它只显示一次?
啊,你需要运行一个查询,作为评论者贝尔ow说。尝试以“WHERE x LIKE'%word1%或WHERE x LIKE'%word2%'...'的形式构建查询。 – halfer 2014-09-26 07:38:45
问题出在你的代码中,而不是SQL语句。将单个结果放在由“description”键入的字典中。重复的结果行将只覆盖先前的条目。最后字典将只包含唯一条目 – 2014-09-26 07:43:07