数组始终从一个空零开始

时间:2015-05-30 17:33:09

标签: java php android mysql json

我正在尝试读取我的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);
 ?>

2 个答案:

答案 0 :(得分:3)

$array[] = array();更改为$array = array();

答案 1 :(得分:0)

array_push()是问题所在。我不得不使用$ array = $ row;