PHP:最常见的表中回显重复项的数量

时间:2017-07-06 15:44:36

标签: php mysql

我试图回应表格中最常见的重复项。我已经能够回显重复项的名称,但我正在寻找的是表中的一个单独的列,显示重复发生的次数。有没有一种方法来回显COUNT(*)值?另外一种按大小组织值的方法会很有帮助。

我的php:

$interests = "SELECT name, COUNT(*) FROM pageinterests WHERE pageid = '$id' GROUP BY name HAVING COUNT(*) > 1";
$interestresults = mysqli_query($conn, $interests);

我的HTML:

      <div class="panel panel-default panel-table">
<div class="panel-heading">
<div class="row">
<h2 class="cba-title">Interests</h2>

                    </div>
                    </div>
                    <div>
                            <?php
                                if(mysqli_num_rows($interestresults) > 0){
                                    $rim = mysqli_num_rows($interestresults);
                                    echo "
                                     <table class = 'table table-striped table-bordered table-list'>
                                     <thead>
                                      <tr>
                                       <th>Name</th>

                                      </tr>
                                       </thead>
                                      <tbody>'";

                                    for($x = 1; $x <= $rim; $x++){
                                        $rat = mysqli_fetch_assoc($interestresults);
                                        echo "<tr>

                                            <td>".$rat['name']."</td>
                                            </tr>";

                                    }

                                    echo '</tbody>
                                        </table>
                                      </center>';
                                }else{
                                    echo " There doesn't seem to be any common interests yet";
                                }
                            ?>
                        </div>
                        </div>

4 个答案:

答案 0 :(得分:4)

使用别名并按顺序排列正确的计数序列

    $interests = "SELECT name, COUNT(*) AS my_count 
          FROM pageinterests 
          WHERE pageid = '$id' 
          GROUP BY name HAVING COUNT(*) > 1
          ORDER BY my_count";


    .......

   for($x = 1; $x <= $rim; $x++){
       $rat = mysqli_fetch_assoc($interestresults);
       echo "<tr>

        <td>".$rat['name']."</td>
        <td>".$rat['my_count']."</td>
          </tr>";

    }

答案 1 :(得分:4)

你可以使用这样的别名:

SELECT name, COUNT() as The_Count 
FROM pageinterests
WHERE pageid = '$id'
GROUP BY name HAVING COUNT() > 1
ORDER BY The_Count DESC;

答案 2 :(得分:3)

SELECT name, COUNT(*) as mycount FROM ...

答案 3 :(得分:3)

你需要使用count(*)的别名。然后你可以将它用于order和echo。

$interests = "SELECT name, COUNT(*) as count_alias FROM pageinterests WHERE pageid = '$id' GROUP BY name HAVING COUNT(*) > 1 ORDER BY count_alias DESC";