Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php自动生成json文件_Php_Json - Fatal编程技术网

用php自动生成json文件

用php自动生成json文件,php,json,Php,Json,我正在尝试让一个播放列表json文件生成器为我的Raspberry Pi上的一个小图片幻灯片项目工作 如何使用php以这种格式创建json文件 这是我的PHP代码: function json_read() { $link = connect(); $i = 0; $string = "SELECT * FROM Playlist, Bild WHERE Playlist.Bild_idBild = Bild.idBild"; $result = mysqli_query($

我正在尝试让一个播放列表json文件生成器为我的Raspberry Pi上的一个小图片幻灯片项目工作

如何使用php以这种格式创建json文件

这是我的PHP代码:

function json_read() {
  $link = connect();

  $i = 0;

  $string = "SELECT * FROM Playlist, Bild WHERE Playlist.Bild_idBild = Bild.idBild";
  $result = mysqli_query($link, $string);   

  while ($row = mysql_fetch_array($result)){
    $i[] = array(
                 'file' => $row['Bild.dateiname'],
                 'duration' => $row['Playlist.zeit'],
                 );

    $i++;
  }

  $data = array(
                'playlist' => $i
                );

  echo json_encode($data);

  disconnect();
}
它应该是什么样子的:

{
"playlist": [
    {
        "file": "001.jpg",
        "duration": 5
    },
    {
        "file": "002.jpg",
        "duration": 5
    },
    {
        "file": "003.jpg",
        "duration": 10
    },
    {
        "file": "004.jpg",
        "duration": 5
    },
    {
        "file": "005.jpg",
        "duration": 10
    },
    {
        "file": "006.jpg",
        "duration": 5
    }
]

}您的代码非常混乱

您正在递增数组名称

与此代码不同的是:

 while ($row = mysql_fetch_array($result)){
        $i[] = array(
            'file' => $row['Bild.dateiname'],
            'duration' => $row['Playlist.zeit'],
        );

        $i++;
    }
使用以下命令:

 $arr = array();
 while ($row = mysql_fetch_array($result)){
  $temp['file'] = $row['Bild.dateiname'];
  $temp['duration'] = $row['Playlist.zeit'];
  $arr['playlist'][$i] = $temp;
        $i++;
    }



echo json_encode($arr);
不是-在这种情况下不要使用增量变量

需要给出变量语义的名称:

$i$playlist

function json_read() { $link = connect();

    $string = "SELECT * FROM Playlist, Bild WHERE Playlist.Bild_idBild = Bild.idBild";
    $result = mysqli_query($link, $string); 

    // create container for playlist elements
    $playlist = array();

    while ($row = mysql_fetch_array($result)){

        // add new element onto the end container
        $playlist[] = array(
            'file' => $row['Bild.dateiname'],
            'duration' => $row['Playlist.zeit'],
        );

    }

    $data = array(
        'playlist' => $playlist
    );

    echo json_encode($data);

    disconnect();
}