在PHP中显示数据的行数

问题描述 投票:1回答:4

在这一段时间......这实际上是我之前发布的问题的另一个简化问题。我正在尝试显示国家/地区并计入以下查询:

$query = mysqli_query($con, "SELECT COUNT(id), country FROM users GROUP BY country ORDER BY COUNT(id) DESC");

    while ($row = mysqli_fetch_array($query)) {
    $countries = $row['country'];
    echo $countries;}

我输出的是从最高到最低列出的国家,但它旁边没有显示计数。我知道这些已在查询中求和,如何定位数字并将其分配给php变量进行显示?

任何帮助,将不胜感激。

php mysqli
4个回答
0
投票

您需要在COUNT(id)的查询中添加别名,如下所示: -

$query = mysqli_query($con, "SELECT COUNT(id) as count, country FROM users GROUP BY country ORDER BY count DESC");

现在改变一下while()循环代码: -

while ($row = mysqli_fetch_assoc($query)) { // _assoc for lighter array iteration
    $countries = $row['country'];
    $countries_count = $row['count'];// get count of each country
    echo $countries.'--'.$countries_count ;// show country and it's count both 
}

2
投票

您可以为COUNT列使用别名,然后在mysqli_fetch_array为每行返回的数组中引用该别名。

$query = mysqli_query($con, "SELECT COUNT(id) AS countryCount, country FROM users GROUP BY countryCount ORDER BY countryCount DESC");

while ($row = mysqli_fetch_array($query)) {
$count = $row['countryCount'];
$countries = $row['country'];
echo $count;
echo $countries;}

0
投票

这是你想要做的: -

$query = mysqli_query($con, "SELECT COUNT(id) AS total_country, country FROM users GROUP BY country ORDER BY id DESC");

while ( $row = mysqli_fetch_array( $query ) )
{
    $countries           = $row['country'];
    $total_countries = $row['total_country'];

    echo "<p>{$countries}</p>;
    echo "<p>Total count: {$total_countries}</p>";
}

-4
投票

你没有分配变量。

这样做:$count = $row['COUNT'];并回应它。它应该工作

© www.soinside.com 2019 - 2024. All rights reserved.