0

ラズベリーパイの小さな画像スライドショープロジェクトでプレイリストjsonファイルジェネレーターを機能させようとしています。

この形式の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
    }
]

}

4

2 に答える 2

1

whilefor ではありません- この場合はインクリメント var を使用しないでください

変数セマンティックの名前を指定する必要があります:

$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();
}
于 2013-10-03T10:38:50.727 に答える
0

あなたのコードはかなり混乱しています。

配列名をインクリメントしています。

このコードではなく:

 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);
于 2013-10-03T10:26:26.683 に答える