【问题标题】:Need help removing duplicate columns in a mysql result需要帮助删除 mysql 结果中的重复列
【发布时间】:2013-08-29 05:24:45
【问题描述】:

我有一个按国家/地区返回结果的网站。有一个查询返回这个,然后我使用一个循环来输出数据。唯一的问题是其中之一,有一个 sub-50 列,结果一直到 sub-36 列是相同的。我需要帮助删除重复的列。

// By country
// sort countries by most subXs in descending order
arsort($country_sub{$dsub});
// print results
echo "<b><span style='font-size:20px;'>By Country</span></b>";
echo "<table><tr style='font-weight:bold;'><td style='width:100px;'>Country</td><td>sub".$dsub."</td>";
for($i=$dsub-1; $i>=$x; $i--){ echo "<td>sub".$i."</td>"; }
echo "</tr>";
foreach($country_sub{$dsub} as $country => $value){
 echo "<tr><td>".$country."</td><td>".$value."</td>";
 for($i=$dsub-1; $i>=$x; $i--){
 if (isset($country_sub{$i}[$country])) {
  echo "<td>".$country_sub{$i}[$country]."</td>";
 } else{
  echo "<td></td>";

 }
 echo "</tr>";
}
echo "</table><br/>";

数组$country_sub{$dsub} 包含获得该结果或更少的人数。 foreach 循环输出最高的数字,for 循环输出结果本身。

您可以在此链接中查看此代码的使用位置:http://cubingstats.netau.net/3bld/index.php。它用于“按国家/地区”部分。我想要的只是在那个表中,显示 sub 36 和 sub 27(上面列出的那些)。任何帮助都非常有用!

编辑:第 26-32 行(有关链接,请参阅下面的 cmets)显示 addOne 函数,这是将它添加到数组中的原因。然后在显示结果时在第 48-50 行和第 68-70 行使用它。

【问题讨论】:

  • 查询和输出怎么样?这会很有帮助
  • 您可以在查询中尝试使用 GROUP BY 值
  • 有问题的是您的查询...看到这一点会有所帮助。
  • 它实际上并不是真正由查询运行的。当结果发布在页面上时,值被添加到数组中。你可以在pastie.org/private/immrnodeksobcdbdyz3g看到完整的源代码查询工作得很好,只是我必须能够在某种意义上删除重复的列。论坛上的一位用户说,最简单的方法是比较每一列并使用循环删除它们,但我无法让它工作
  • 我在你的代码中看到了 5 个查询...它怎么不是由一个运行的?

标签: php mysql loops html-table


【解决方案1】:

在您的 SQL 查询中,在 SELECT 之后添加 DISTINCT

SELECT DISTINCT fields,fields...fields
FROM...

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多