如何在php中删除mysql查询中的重复结果?

igetnqfo  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(329)

我试图为我的php站点提供一个搜索功能。用户应该能够为他们想要的查询搜索行和列,比如“搜索引擎”。我尝试了以下php代码:

<?php
    $con = @mysqli_connect("localhost", "root", "", "search");
  $output = '';

  if(isset($_POST['search'])) {
    $search = $_POST['search'];
    $search = preg_replace("#[^0-9a-z]i#","", $search);

    $query = mysqli_query($con, "SELECT * FROM sites WHERE (site_title LIKE '%$search%' or site_link LIKE '%$search%' or site_keywords LIKE '%$search%')") or die ("Could not search");
    $count = mysqli_num_rows($query);

    if($count == 0){
      $output = "There was no search results!";
    print $output;

    }else{

      while ($row = mysqli_fetch_array($query)) {

    $site_keywords = $row ['site_keywords'];
    $site_tit = $row ['site_title'];
    $site_link = $row ['site_link'];

    $output .='<div> '.$site_tit.''.$site_keywords.''.$site_link.'</div>';
    print $output;

      }

    }
  }
?>

一切正常,但我得到了重复的结果。我读过很多答案,到目前为止我做过的是:我用 SELECT DISTINCT * FROM .... 还有 SELECT DISTINCT site_id FROM .... 但没有返回任何结果。我尝试分组,但他们没有删除重复项,也没有返回任何结果。我还将php array\u unique()应用于 $row = mysqli_fetch_array($query) 在where条件下,但它也没有返回任何结果。如果我能做到这一点,只使用sql请或我必须删除重复的php像使用一个函数,请指导我。提前谢谢。

uoifb46i

uoifb46i1#

移动:

print $output;

在圈外。
马上 $output 每次循环都要打印。如果你的结果是 A,B,C 那么你的输出将是 A,A,B,A,B,C (带div等)

相关问题