如何在PHP

时间:2017-09-21 08:54:40

标签: php mysql unique

我的数据库

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>

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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和table;)$dyn_table.= '</table>' ;

编辑:忘了为表添加一些结束标记