Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
从sql结果为json在PHP中创建关联数组_Php_Mysql_Arrays_Json_Associative - Fatal编程技术网

从sql结果为json在PHP中创建关联数组

从sql结果为json在PHP中创建关联数组,php,mysql,arrays,json,associative,Php,Mysql,Arrays,Json,Associative,我正在尝试从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_q

我正在尝试从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_编码,返回的json具有我要查找的语法,但是如果不将其添加到数组末尾,我就无法填充数组

{"timeline":{"content":{"pictures":[]}}}
第一:

然后:

您使用空数组定义了数组,但未续订其状态。

首先:

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


您使用空数组定义了数组,并且没有更新其状态。

那么为什么建议在最后重置数组?抱歉,错误:timeline=array('content'=>array('pictures'=>$picArray());它将响应您的结构:{“timeline”:{“content”:{“pictures”:[]}}},因此您确实不需要执行前两个查询。谢谢您的回答!然而,我的问题可能表述得太模糊了。我正在努力解决的是如何从我的3个数组或3个sql查询构建一个三维数组。我可以在PHP中创建一个空的三维数组,并将其编码为json,这就提供了我想要的结构。为什么你建议在最后重置数组?对不起,错误:timeline=array('content'=>array('pictures'=>$picArray());它将响应您的结构:{“timeline”:{“content”:{“pictures”:[]}}},因此您确实不需要执行前两个查询。谢谢您的回答!然而,我的问题可能表述得太模糊了。我正在努力解决的是如何从我的3个数组或3个sql查询构建一个三维数组。我能够在PHP中创建一个空的三维数组,并将其编码为json,这样就可以得到我想要的结构。
    $mainArray = array(
        'timeline' => $timelineArray = array(
            'content' => $contentArray = array(
                'pictures' => $picArray = array(),
            ),
        ),
    );
echo stripslashes(json_encode($mainArray));