php - JSON 转换丢失一半数据?

标签 php mysql json

我有一个国家/地区的 mysql 数据库,总共 250 个,我想将其交给 Android 应用程序。我知道我必须在中间使用 php 将结果解析为 JSON。就是这样:

<?php 

 require_once('connection.php');
 $response = array();
 $resultarray = array();
 $result = mysqli_query($con, "SELECT * FROM countries");

 if (!empty($result)) {
    // check for empty result
    while ($row=mysqli_fetch_assoc($result)) {
        print $row;
        $resultarray = mysqli_fetch_array($result);
        $Laender = array();
        $Countries[de] = $resultarray["de"];
        $response["Countries"] = array();

    array_push($response["Countries"], $Countries);

    echo json_encode($response);
    }
}       

?>

我在浏览器中运行了该脚本,它显示正确,只是缺少一半的国家/地区。仅显示 125 个国家/地区。他们消失到哪里去了?

最佳答案

两个函数mysqli_fetch_assoc mysqli_fetch_array做同样的事情 - 他们获取下一条记录。

所以,在你的 while 中您使用 mysqli_fetch_assoc 获取第一条记录然后立即使用 mysqli_fetch_array 获取第二记录。因此,第一个记录丢失了。这种情况每次迭代都会发生,因此一半的记录都会丢失。

摆脱mysqli_fetch_array调用:

$response["Countries"] = array();
while ($row = mysqli_fetch_assoc($result)) {
    array_push($response["Countries"], $row["de"]);
}
echo json_encode($response);

关于php - JSON 转换丢失一半数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46484533/

相关文章:

类方法中私有(private)函数内的PHP调用函数

php - PayPal "Thank you"页面,包含详细信息

Mysql like 运算符未找到匹配项

mysql - oracle 在更新和插入时触发

php - 使用 json 和 php 获取 Youtube 视频

javascript - 使用第 3 方表单跟踪 HubSpot 登陆页面的转化情况

php - 如何从html中获取图片的src和值,并将其存储到php变量中?

php - 在 mySQL 中计算每天和每小时的结果

javascript - JSON 到数组不工作

java - 如何在反序列化 JSON 响应时使用 Gson 处理 NumberFormatException