0

json_encode の sql 結果から連想配列を作成しようとしています。

ここに私のコードがあります:

$timelineQuery = "SELECT * FROM timeline_table";
$contentQuery = "SELECT * FROM content_table";
$picQuery = "SELECT * FROM pic_table";

$sql = mysql_query($timelineQuery) or die(mysql_error()); 
$sql2 = mysql_query($contentQuery) or die(mysql_error());
$sql3 = mysql_query($picQuery) or die(mysql_error());   

$mainArray = array(
    'timeline' => $timelineArray = array(
        'content' => $contentArray = array(
            'pictures' => $picArray = array(),
        ),
    ),
);

while($row = mysql_fetch_assoc($sql)) { 
    $timelineArray[] = $row;            
}
while($row2 = mysql_fetch_assoc($sql2)) {
    $contentArray[] = $row2;
}
while($row3 = mysql_fetch_assoc($sql3)) {
    $picArray[] = $row3;
}
echo stripslashes(json_encode($mainArray));

$mainArray をそのまま json_encode すると、返された json には探している構文がありますが、配列の末尾に追加しないと配列を埋めることができませんでした。

{"timeline":{"content":{"pictures":[]}}}
4

1 に答える 1

4

最初:

while($row = mysql_fetch_assoc($sql)) { 
    $timelineArray[] = $row;            
}
while($row2 = mysql_fetch_assoc($sql2)) {
    $contentArray[] = $row2;
}
while($row3 = mysql_fetch_assoc($sql3)) {
    $picArray[] = $row3;
}

それから:

    $mainArray = array(
        'timeline' => $timelineArray = array(
            'content' => $contentArray = array(
                'pictures' => $picArray = array(),
            ),
        ),
    );
echo stripslashes(json_encode($mainArray));

空の配列で配列を定義し、その状態を更新しませんでした。

于 2013-01-30T13:41:49.960 に答える