我试图为我的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...
但没有返回任何结果。我尝试分组,但他们没有删除重复的,什么也没有返回。我还在where条件中对$row=mysqli_fetch_array($query)
应用了PHP array_unique(),但它也没有返回任何结果。如果我可以做到这一点,只使用SQL请或我必须删除重复的PHP像使用一个函数,请指导我。提前道谢。
移动:
print $output;
在回路之外。
现在,每次通过循环时都将打印$output
。如果您的结果是A,B,C
,那么您的输出将是A,A,B,A,B,C
(带有div等)
问题内容: 我有一个包含以下字段的表: 现在,我需要删除具有same的行。一种方法是使用以下SQL以及脚本( ): 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道是否只能使用SQL查询来完成。 问题答案: 一种简单的方法是在3列上添加索引。在编写语句时,请包含关键字。像这样: 这将删除所有重复的行。作为一项额外的好处,重复的将来会出错。和往常一样,您可能需要在运行类似内容之前进行
问题内容: 我已向客户提供以下查询,以删除重复的电话号码。记录在MSSQL数据库中,但现在他们也需要在MySQL上进行记录,并且他们报告MySQL抱怨查询的格式。我已经包含了一个测试表的设置,该测试表具有重复的代码示例,但是真正重要的是删除查询。 我在无知和紧急情况下问这个问题,因为我仍在忙于下载和安装MySQL,在此期间也许有人可以提供帮助。 问题答案: 通往罗马的途径很多。这是一。非常快。因此
问题内容: 我有这样的桌子 我想执行一个查询,以除去所有最新的重复项。我希望你有个主意吗? 例如,查询后的表必须是这样的 问题答案: 语法可能需要调整,但是应该做到这一点。此外,您可能希望将子查询预查询到其自己的表FIRST中,然后对该结果集运行DELETE FROM。
问题内容: 首先创建一些示例数据(e1,e2,e3是类型,而test是索引名称): 现在我的问题是:我怎样才能仅获得这两个数据?删除结果中具有相同ID的重复数据。 问题答案: 首先,您将需要搜索多个索引。 然后,在结果上删除重复的ID。
当我要执行以下查询时: 我得到了错误: 消息102,级别15,状态1,第1行“,”附近的语法不正确。 编辑: 我要删除klantId 3。
问题内容: 我有一张像这样的桌子: ID为 ,自创建表以来一直在使用。 我想要做的是删除除一个记录以外的所有记录,其中所有其他列都相同。 问题答案: 当然,您必须在所有三个位置将col1,col2扩展到所有列。 编辑:我只是从保留的脚本中重新进行了测试,然后重新测试,它在MySQL中执行。