Php 从MySQLi查询创建用于显示的数组
这是先前已解决问题的继续。我有以下查询,提取每个国家的国家和计数Php 从MySQLi查询创建用于显示的数组,php,mysqli,Php,Mysqli,这是先前已解决问题的继续。我有以下查询,提取每个国家的国家和计数 $query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC"); 我试图将它们放入数组中,如下所示,以便将它们作为变量分配: $country_text = ['USA', 'Canada', 'England', 'Australia', 'New Z
$query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC");
我试图将它们放入数组中,如下所示,以便将它们作为变量分配:
$country_text = ['USA', 'Canada', 'England', 'Australia', 'New Zealand', etc...];
$country_count = [15, 10, 5, 3, 2, etc...];
一旦分配了这些,我希望按如下方式显示它们:
for($i = 0; $i < 195; $i++) {
echo "['{$country_text[$i]}'" . "," . "{$country_count[$i]}],";
}
($i=0;$i<195;$i++)的{
回声“{$country_text[$i]}.”,“{$country_count[$i]}]”;
}
这三个代码剪接在一起就是它的整体。我面临的挑战是创建数组&将它们作为变量分配 您可以通过以下方式实现:
//do a query and run
$query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC");
$countries = [];
//iterate through values from query
while($row = mysqli_fetch_assoc($query)) {
$country = $row['country'];
$countryCount = $row['countCnt'];
//create and array with data, formatted as ['USA' => '15', 'Canada' => '10' , ...]
$countries[$country] = $countryCount;
}
//Create both arrays
$country_text = array_keys($countries);
$country_count = array_values($countries);
或者,与其做
for($i = 0; $i < 195; $i++) {
echo "['{$country_text[$i]}'" . "," . "{$country_count[$i]}],";
}
您需要的格式称为
json
不要发明轮子,一切都已经发明了:
$query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC");
$countries = [];
while($row = mysqli_fetch_assoc($query)) {
$countries[] = [$row['country'], $row['countCnt']];
}
echo json_encode($countries);
嗯,我没有收到错误,但是地理地图没有显示任何东西。基本上,这是在for each echo“['{$country_text[$i]}'”、“{$country_count[$i]}]、”;替换API['South America',900],'Canada',550]等中的此默认值。如果我将($I=0;$I<6;$I++)限制为如果此国家/地区数组中有6个值,则此for循环在195中如何工作?这将是一个好主意,如果您使用另一个表的国家,您将保存所有国家,然后离开加入这个与您的用户表。希望你能得到你的嘲笑是的,谢谢@Mithu CN,我现在就要实现这一点了。如果我的代码要考虑其他国家/地区的添加,则需要采用不同的结构。我列出了国家/地区,但计数结果为空。因为字段名是
countCnt
,而不是countryCnt
。
$query = mysqli_query($con, "SELECT COUNT(id) AS countCnt, country FROM users GROUP BY country ORDER BY COUNT(id) DESC");
$countries = [];
while($row = mysqli_fetch_assoc($query)) {
$countries[] = [$row['country'], $row['countCnt']];
}
echo json_encode($countries);