停止搜索结果中的重复值

时间:2015-11-17 10:01:18

标签: php shipping

这是我的搜索结果。如你所见,有重复的结果。这是真的,但它不是太漂亮,没有一个名字serval时间。

enter image description here

  

代码:

<?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 &nbsp&nbsp&nbsp
           شغل: %s &nbsp&nbsp&nbsp
           شماره تلفن: %s &nbsp&nbsp&nbsp
           عملیات های موفق: %s &nbsp&nbsp&nbsp
           عملیات نا موفق: %s &nbsp&nbsp&nbsp
           توضیحات: %s<br>",
           $row["name"],
           $row["family"],
           $row["job_name"], 
           $row["phone_number"], 
           $row["positive"], 
           $row["negative"], 
           $row["comments"]);

}
?>
</fieldset>

它应该是这样的:

enter image description here

我想呼唤姓名,家人只有一次姓名,家人不止一次

这种风格用户友好,观看效果很好。谢谢大家...

3 个答案:

答案 0 :(得分:4)

<?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 &nbsp&nbsp&nbsp
        شغل: %s &nbsp&nbsp&nbsp
        شماره تلفن: %s &nbsp&nbsp&nbsp
        عملیات های موفق: %s &nbsp&nbsp&nbsp
        عملیات نا موفق: %s &nbsp&nbsp&nbsp
        توضیحات: %s<br>",
        $firstname,
        $lastname,
        $row["job_name"], 
        $row["phone_number"], 
        $row["positive"], 
        $row["negative"], 
        $row["comments"]);
    }
?>

答案 1 :(得分:2)

试试这个。它会解决你的问题。

 $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 &nbsp&nbsp&nbsp
           شغل: %s &nbsp&nbsp&nbsp
           شماره تلفن: %s &nbsp&nbsp&nbsp
           عملیات های موفق: %s &nbsp&nbsp&nbsp
           عملیات نا موفق: %s &nbsp&nbsp&nbsp
           توضیحات: %s<br>",
           $row["name"],
           $row["family"],
           $row["job_name"], 
           $row["phone_number"], 
           $row["positive"], 
           $row["negative"], 
           $row["comments"]);

}

答案 2 :(得分:1)

我已经尝试使用 $ name ,因为它正在重复。添加此代码并运行您将获得预期的输出

<?php
$oldname="";
while ($row = mysql_fetch_array($dbresult, MYSQL_ASSOC)) {
$newname=$row["name"];
if($newname!=$oldname)
printf("نام: %s   %s &nbsp&nbsp&nbsp
       شغل: %s &nbsp&nbsp&nbsp
       شماره تلفن: %s &nbsp&nbsp&nbsp
       عملیات های موفق: %s &nbsp&nbsp&nbsp
       عملیات نا موفق: %s &nbsp&nbsp&nbsp
       توضیحات: %s<br>",
       $newname,
       $row["family"],
       $row["job_name"], 
       $row["phone_number"], 
       $row["positive"], 
       $row["negative"], 
       $row["comments"]);
$oldname=$newname;
}
else{
printf("نام: %s   %s &nbsp&nbsp&nbsp
       شغل: %s &nbsp&nbsp&nbsp
       شماره تلفن: %s &nbsp&nbsp&nbsp
       عملیات های موفق: %s &nbsp&nbsp&nbsp
       عملیات نا موفق: %s &nbsp&nbsp&nbsp
       توضیحات: %s<br>",
       ,//empty name
       $row["family"],
       $row["job_name"], 
       $row["phone_number"], 
       $row["positive"], 
       $row["negative"], 
       $row["comments"]);
 $oldname=$newname;
}
?>