Php JSON转换时有一半的数据丢失?
我有一个国家的mysql数据库,总共有250个,我想把它交给一个Android应用程序。我知道我必须在两者之间使用php将结果解析为JSON。就是这样:Php JSON转换时有一半的数据丢失?,php,mysql,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)) {
<?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_数组
都执行相同的操作-它们获取下一个记录
因此,在while
中,首先使用mysqli\u fetch\u assoc
获取记录,然后立即使用mysqli\u fetch\u数组获取第二个记录。因此,第一条记录丢失。这在每次迭代中都会发生,所以一半的记录都会丢失
摆脱mysqli\u fetch\u数组
调用:
$response["Countries"] = array();
while ($row = mysqli_fetch_assoc($result)) {
array_push($response["Countries"], $row["de"]);
}
echo json_encode($response);
这两个函数
mysqli\u fetch\u assoc
和mysqli\u fetch\u array
都执行相同的操作-它们获取下一个记录
因此,在while
中,首先使用mysqli\u fetch\u assoc
获取记录,然后立即使用mysqli\u fetch\u数组获取第二个记录。因此,第一条记录丢失。这在每次迭代中都会发生,所以一半的记录都会丢失
摆脱mysqli\u fetch\u数组
调用:
$response["Countries"] = array();
while ($row = mysqli_fetch_assoc($result)) {
array_push($response["Countries"], $row["de"]);
}
echo json_encode($response);
为什么要调用
mysqli\u fetch\u assoc
和mysqli\u fetch\u array
?我还是php新手,经过一些测试,我没有注意到有什么不同。整个脚本基本上是我从各种教程中拼凑而成的。这可能不是问题所在,不是吗?我在这里看不到与Android的任何关系。为什么你要调用mysqli_fetch_assoc
和mysqli_fetch_array
?我对php还是新手,经过一些测试,我没有注意到有什么不同。整个脚本基本上是我从各种教程中拼凑而成的。这可能不是问题所在,不是吗?我在这里看不到与Android有任何关系。