我正在尝试让播放列表 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 不是 for - 在这种情况下不要使用增量变量
需要给出变量语义的名称:
$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();
}
你的代码很混乱。
您正在递增阵列名称。
而不是此代码:
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);