如何在包含数字的<li>列表中显示COUNT(*)查询结果?

时间:2019-02-08 22:51:07

标签: php wordpress mysqli

我有一个事件数据库表。每个事件都有一个分配给它的位置。我想显示10个最常用位置的编号列表。我希望以以下格式查看它:

  1. eventplace1(位置计数)
  2. eventplace2(位置数)

以此类推。

使用PHP 7.2.12和MySQL 5.6,以及php编码的初学者...

我想出了一个代码(下面的$ query)在phpMyAdmin中提供了我想要的列表,但我想在WordPress主页上的小部件中使用它。

我知道有一个SELECT TOP 10,从理论上讲,它应该可以满足我的要求,但似乎不起作用...

<?php
require_once(ABSPATH . 'wp-settings.php');
$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysqli_select_db($connection, DB_NAME);

$query = "SELECT count(*), eventplace FROM tng_events GROUP BY eventplace HAVING COUNT(*) > 1 ORDER BY count(*) DESC LIMIT 10";
$result = mysqli_query($connection, $query);
?>

当我回显$ result [0]时;我只得到所有地方的总数。 当我回显$ result [1];我什么也没得到,只有一个空白。

当我使用 SELECT count(),事件场所FROM tng_events GROUP BY事件场所HAVING COUNT()> 1 ORDER BY count(*)DESC LIMIT 10 在phpMyAdmin中,它提供了一个包含10个位置及其各自计数值的表。

我希望输出的内容与phpMyAdmin中的内容相同,但形式略有不同(请参见上文)。我想我需要创建两个变量($),一个包含事件场所名称,另一个包含计数,但是我不确定该怎么做。然后输出可能类似于:

echo

  1. $ eventplace($ placecount)
(没有空格)

1 个答案:

答案 0 :(得分:0)

使用foreach循环,可以遍历结果并回显循环内的每个元素,如下所示。

$query = "SELECT count(*) as count , eventplace FROM tng_events GROUP BY eventplace HAVING COUNT(*) > 1 ORDER BY count(*) DESC LIMIT 10";
$result = mysqli_query($connection, $query);

"<ol>";
foreach ($result as $row){
    echo "<li>" .$row['eventplace']. ' ('. $row['count']. ')'. "</li>";
}
"</ol>";