我的数据库

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>

我的问题
结果是可以的,但是有一个副本。如何得到唯一的结果?

最佳答案

假设sup表的id列是主键,因此无论如何都是唯一的,那么您的不同查询就没有意义了-不管怎样,每个找到的结果都有不同的id,因此它可以返回具有相同smarket的多行。
查询不同的smarket(不带supid),您将得到所需的结果集

SELECT DISTINCT smarket FROM sup

我在您的表构造中也看到了一些错误(例如关闭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>' ;
编辑:忘记为表添加一些结束标记

10-05 21:01
查看更多