停止搜索结果中的重复值
stopping duplicate values in search result
这是我的搜索结果。如您所见,有重复的结果。是真的,但是一个名字叫人不美
code:
<?php
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';
$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET utf8");
$dbresult=mysql_query("SELECT tablesite.name,
tablesite.family,
tablesite.phone_number,
job_list.job_name,
relation.comments,
SUM(CASE WHEN action.vote !='' AND action.customer_comment ='' THEN 1 ELSE 0 END) positive,
SUM(CASE WHEN action.vote !='' AND action.customer_comment !='' THEN 1 ELSE 0 END) negative
FROM tablesite
INNER JOIN relation
on tablesite.id_user=relation.user_id
INNER JOIN job_list
on relation.job_id=job_list.job_id
left JOIN action
ON tablesite.id_user=action.service_provider_id
WHERE job_name LIKE '%".$_POST['search']."%'
OR name LIKE '%".$_POST['search']."%'
OR family LIKE '%".$_POST['search']."%'
group by name,family,job_name,phone_number",$con);
?>
<title>نتایج جستجو</title><fieldset class="fdex" dir="rtl">
<legend><span class="style4">نتایج جستجوی مشاغل</span></legend>
<?php
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$row["name"],
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
?>
</fieldset>
应该是这样的:
我想回显 name,family 一次,而 name,family 不止一次
这种风格很人性化,也很好看。谢谢大家...
我已尝试单独使用 $name,因为它正在获取 repeated.Add 这段代码,并且 运行 您将获得预期的输出
<?php
$oldname="";
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
$newname=$row["name"];
if($newname!=$oldname)
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$newname,
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
$oldname=$newname;
}
else{
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
,//empty name
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
$oldname=$newname;
}
?>
试试这个。它会解决你的问题。
$temp_array = array();
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
if(in_array($row["name"], $temp_array))
$row["name"] = '';
else
array_push($temp_array, $row["name"]);
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$row["name"],
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
<?php
$firstname = '';
$oldfirst = '';
$lastname = '';
$oldlast = '';
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
if($oldfirst == $row['name'] && $oldlast == $row['family'])
{
$firstname = ' ';
$lastname = ' ';
$namelabel = ' ';
}
else
{
$firstname = $row['name'];
$lastname = $row['family'];
$namelabel = 'نام: ';
}
$oldfirst = $row['name'];
$oldlast = $row['family'];
printf("{$namelabel} %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$firstname,
$lastname,
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
?>
这是我的搜索结果。如您所见,有重复的结果。是真的,但是一个名字叫人不美
code:
<?php
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';
$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET utf8");
$dbresult=mysql_query("SELECT tablesite.name,
tablesite.family,
tablesite.phone_number,
job_list.job_name,
relation.comments,
SUM(CASE WHEN action.vote !='' AND action.customer_comment ='' THEN 1 ELSE 0 END) positive,
SUM(CASE WHEN action.vote !='' AND action.customer_comment !='' THEN 1 ELSE 0 END) negative
FROM tablesite
INNER JOIN relation
on tablesite.id_user=relation.user_id
INNER JOIN job_list
on relation.job_id=job_list.job_id
left JOIN action
ON tablesite.id_user=action.service_provider_id
WHERE job_name LIKE '%".$_POST['search']."%'
OR name LIKE '%".$_POST['search']."%'
OR family LIKE '%".$_POST['search']."%'
group by name,family,job_name,phone_number",$con);
?>
<title>نتایج جستجو</title><fieldset class="fdex" dir="rtl">
<legend><span class="style4">نتایج جستجوی مشاغل</span></legend>
<?php
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$row["name"],
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
?>
</fieldset>
应该是这样的:
我想回显 name,family 一次,而 name,family 不止一次
这种风格很人性化,也很好看。谢谢大家...
我已尝试单独使用 $name,因为它正在获取 repeated.Add 这段代码,并且 运行 您将获得预期的输出
<?php
$oldname="";
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
$newname=$row["name"];
if($newname!=$oldname)
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$newname,
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
$oldname=$newname;
}
else{
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
,//empty name
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
$oldname=$newname;
}
?>
试试这个。它会解决你的问题。
$temp_array = array();
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
if(in_array($row["name"], $temp_array))
$row["name"] = '';
else
array_push($temp_array, $row["name"]);
printf("نام: %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$row["name"],
$row["family"],
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
<?php
$firstname = '';
$oldfirst = '';
$lastname = '';
$oldlast = '';
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
if($oldfirst == $row['name'] && $oldlast == $row['family'])
{
$firstname = ' ';
$lastname = ' ';
$namelabel = ' ';
}
else
{
$firstname = $row['name'];
$lastname = $row['family'];
$namelabel = 'نام: ';
}
$oldfirst = $row['name'];
$oldlast = $row['family'];
printf("{$namelabel} %s %s    
شغل: %s    
شماره تلفن: %s    
عملیات های موفق: %s    
عملیات نا موفق: %s    
توضیحات: %s<br>",
$firstname,
$lastname,
$row["job_name"],
$row["phone_number"],
$row["positive"],
$row["negative"],
$row["comments"]);
}
?>