【问题标题】:How to get unique value in array in PHP如何在PHP中获取数组中的唯一值
【发布时间】:2017-09-21 08:54:40
【问题描述】:

我的数据库

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>

我的问题 结果没问题,但有重复。如何获得唯一的结果?

【问题讨论】:

  • 你应该检查array_unique
  • Select distinct return only not duplicate so ... 用数据样本更新你的问题,你的实际结果和预期结果
  • 你预期的结果是什么??
  • 结果与副本一起出现。我正在尝试添加结果图像,但无法附加
  • 我只想要独特的结果

标签: php mysql unique


【解决方案1】:

假设您的 sup 表的 id 列是主键,因此无论如何都是唯一的,那么您的不同查询毫无意义 - 每个找到的结果都有不同的 id,因此它可以返回具有相同 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.= '&lt;/table&gt;' ;

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

【讨论】:

    【解决方案2】:

    在你的情况下,你可以试试group by函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-21
      • 2010-09-10
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2012-06-30
      相关资源
      最近更新 更多