我正在尝试读取我的MySQL数据并将其作为JSON。但我只想要一个JSON对象,它尝试给我一个JSONArray,但该数组是空的。
这就是它给我的东西,顶部是JSON,底部是简单数组。
[
[],
{
"id": "1",
"description": null,
"copyright": "© Ian Ransley, flickr.com\/CC BY 2.0"
}
]
Array
(
[0] => Array
(
)
[1] => Array
(
[id] => 1
[description] =>
[copyright] => © Ian Ransley, flickr.com/CC BY 2.0
)
)
正如你所看到的,零索引由于某种原因是空的,并且在我的对象开始之前有一个开始和结束括号([]),这使得我的Android应用程序将其识别为数组而不是对象。 / p>
这是我的PHP代码:
<?php
header('Content-type: text/plain');
$connection = mysqli_connect("localhost", "bananatime", "Yoyobanana", "bananatime")
or die("Error " . mysqli_error($connection));
if(isset($_GET['id'])){
$sql = "SELECT * FROM bananas WHERE id = '".$_GET['id']."' ORDER BY id";
}else{
$sql = "SELECT * FROM bananas ORDER BY id";
}
$result = mysqli_query($connection, $sql) or die("Error in Selecting " .mysqli_error($connection));
$array[] = array();
while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
array_push($array, $row);
}
array_values($array);
echo json_encode($array, JSON_PRETTY_PRINT);
echo "\n\n";
print_r($array);
mysqli_close($connection);
?>
答案 0 :(得分:3)
将$array[] = array();
更改为$array = array();
答案 1 :(得分:0)
array_push()是问题所在。我不得不使用$ array = $ row;