在这一段时间......这实际上是我之前发布的问题的另一个简化问题。我正在尝试显示国家/地区并计入以下查询:
$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变量进行显示?
任何帮助,将不胜感激。
您需要在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
}
您可以为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;}
这是你想要做的: -
$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>";
}
你没有分配变量。
这样做:$count = $row['COUNT'];
并回应它。它应该工作