2017-09-21 124 views
1

我的数据库如何获得独特的价值在数组中的PHP

Tables_sup | 
+------------------+ 
| supid   |     
    scompany  | 
| scategory  | 
| smarket   | 
|  

我的PHP代码

<?php 
require_once 'DBConnect.php'; 



    $con = mysqli_connect("localhost","gb","123"); 
     if (!$con) { 
     die('Could not connect: ' . mysqli_error()); 
     } 

    mysqli_select_db($con,"test_database"); 



    $sql=mysqli_query($con,'SELECT DISTINCT sup.supid,sup.smarket FROM sup order by supid desc'); 
    $i=0; 
    $dyn_table='<table border="1" cellpadding="10">'; 
    while($row=mysqli_fetch_array($sql)){ 

    $supid = $row["supid"]; 
    $smarket = $row["smarket"]; 

    if ($i%5==0){ 

     $dyn_table.='<tr><td>'.$smarket. '<td>'; 

     }else{ 

     $dyn_table.='<td>'.$smarket. '<td>'; 

    } 
    $i++; 
} 

$dyn_table.= '<tr><table>' ; 
?> 

我的HTML

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
    <?php echo $dyn_table;?> 

</body> 
</html> 

我的问题 结果是OK,但有重复。如何获得独特的结果?

+1

你应该检查[array_unique](http://php.net/manual/en/function.array-unique.php) –

+5

选择不同的返回只有不重复所以...更新你的问题与数据采样。,你的实际结果和预期结果 – scaisEdge

+1

你期望的结果是什么? – Shibon

回答

1

假设您的sup表的id列是主键,因此无论如何都是唯一的,您的独特查询没有任何意义 - 每个找到的结果都有不同的id,因此它可以使用相同的smarket返回多行。

查询的不同smarket(不supid),你会得到你想要的结果集

SELECT DISTINCT smarket FROM sup 

我看到你tableconstruction一些错误,以及(收盘例如TR标签)

// every fifth row is gonna be different? 
if ($i%5==0){ 
    $dyn_table.='<tr class="fifthrow"><td>'.$smarket. '</td></tr>'; 
}else{ 
    $dyn_table.='<tr><td>'.$smarket. '</td></tr>'; 
} 

和最后,不要打开另一个TR和表;)$dyn_table.= '</table>' ;

编辑:忘了补充一些结束标记为表

+0

thanks.it作品 –

1

在您的情况下,您可以尝试group by功能。