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

时间:2018-07-09 19:23:01

标签: php mysql

我正在尝试为我的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 ....,但未返回任何结果。我尝试使用GROUP BY,但他们没有删除重复项,却未返回任何内容。我还在$row = mysqli_fetch_array($query)的where条件中应用了PHP array_unique(),但是它也没有返回任何结果。 如果只能使用SQL来完成此操作,或者必须像使用函数一样通过PHP删除重复项,请指导我。预先感谢。

1 个答案:

答案 0 :(得分:4)

移动:

print $output;

在循环之外。

现在$output每次通过循环都被打印。如果您的结果是A,B,C,那么您的输出将是A,A,B,A,B,C(包含div等)