Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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从MariaDB数据创建嵌套JSON_Php_Mysql_Json_Mysqli_Mariadb - Fatal编程技术网

使用PHP从MariaDB数据创建嵌套JSON

使用PHP从MariaDB数据创建嵌套JSON,php,mysql,json,mysqli,mariadb,Php,Mysql,Json,Mysqli,Mariadb,我需要帮助。 我有三张桌子。 1.带有列的post\U表格:id\U post,post\U text。 2.附上带有列的图片:id图片、图片名称、id帖子。 3.带有列的注释表:id\u comment、comment\u text、id\u post <?php $con = mysqli_connect('localhost', 'root', '', 'postingan'); // Check connection if (mysqli_connect_errno())

我需要帮助。
我有三张桌子。
1.带有列的post\U表格:id\U post,post\U text。
2.附上带有列的图片:id图片、图片名称、id帖子。
3.带有列的注释表:id\u comment、comment\u text、id\u post

<?php 
$con = mysqli_connect('localhost', 'root', '', 'postingan');

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  else {
    echo "success";
  }

$postinganlist_array  = array();
$postingan_array = array();
$image_array = array();
$comment_array = array();
$fetch_postingan = mysqli_query($mysqli, 
    "SELECT id_post, post_text FROM post_table")
 or die(mysqli_error($mysqli));
while ($row_postingan = mysqli_fetch_assoc($fetch_postingan)){
$postingan_array['id'] = $row_postingan['id_post'];
$postingan_array['text'] = $row_postingan['post_text'];
$postingan_array['image']=array();
$postingan_array['comment']=array();

$fetch_images = mysqli_query($mysqli, "SELECT id_picture, picture_name FROM attach_picture WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($mysqli));
while ($row_image = mysqli_fetch_assoc($fetch_images)) {
    $image_array['id']=$fetch_images['id_picture'];
    $image_array['pict']=$fetch_images['picture_name'];
    array_push($postingan_array['image'], $image_array);
}
$fetch_comments = mysqli_query($mysqli, "SELECT id_comment, comment_text FROM comment_table WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($mysqli));
while ($row_comment = mysqli_fetch_assoc($fetch_comments)) {
    $comment_array['id']=$fetch_comments['id_comment'];
    $comment_array['comment']=$fetch_comments['comment_text'];
    array_push($postingan_array['comment'], $comment_array);
}
array_push($postinganlist_array, $postingan_array);}
$jsonData = json_encode(($postinganlist_array));
echo $jsonData;
?>
第36行:(“选择id\U post,从post\U表格中选择post\U文本”)
第37行:(或die(mysqli_错误($mysqli))

我的预期结果是

[{
    "id": "1",
    "text": "Good morning all",
    "image": 
    {
        "id": "1",
        "pict": "morning.jpg"
    }
    "comment": [
    {
        "id": "1",
        "comment": "Nice picture"
    }
    {
        "id": "2",
        "comment": "Thank you"
    }
    ]

    "id": "2",
    "text": "This is my new project",
    "image": [
        {
            "id": "2",
            "pict": "splassreen.jpg"
        }
        {
            "id": "3",
            "pict": "main.jpg"
        }
    ]
    "comment": [
        {
            "id": "3",
            "comment": "Great app"
        }
        {
            "id": "4",
            "comment": "Amazing"
        }
    ]
}
]

请帮助我解决您使用的
代码中的问题

$con = mysqli_connect('localhost', 'root', '', 'postingan');

$fetch_postingan = mysqli_query($mysqli, "SELECT id_post, post_text FROM post_table") or die(mysqli_error($mysqli));

$fetch_images = mysqli_query($mysqli, "SELECT id_picture, picture_name FROM attach_picture WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($mysqli));

$fetch_comments = mysqli_query($mysqli, "SELECT id_comment, comment_text FROM comment_table WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($mysqli));
mysqli\u查询
使用
连接字符串
。您已经输入了
$mysqli
,它应该是
$con
。您的查询必须如下所示:

$fetch_postingan = mysqli_query($con, "SELECT id_post, post_text FROM post_table") or die(mysqli_error($con));

$fetch_images = mysqli_query($con, "SELECT id_picture, picture_name FROM attach_picture WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($con));

$fetch_comments = mysqli_query($con, "SELECT id_comment, comment_text FROM comment_table WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($con));

它解决了我的问题,但结果是线性的,不像我想要的那样,像这样的成功[{“id”:“1”,“text”:“great view”,“image”:[{“id”:“1”,“pict”:“pict_1”},{“id”:“2”,“pict”:“pict_2”}],“comment”:[{“id”:“1”,“comment”:“那太棒了”},{“id”:“2”,“comment”:“当然,最好的”{“id”:“3”,“comment”:“祝我在那里”},{“id”:“2”,“text”:“早餐快乐”,“图像”:[],“评论”:[{“id”:“4”,“评论”:“是的,早餐快乐”},{“id”:“5”,“评论”:“hehe”}]},{“id”:“3”,“文本”:“大家晚安”,“图像”:[],“评论”:[]}]我必须添加什么代码才能使它看起来好看?
$fetch_postingan = mysqli_query($con, "SELECT id_post, post_text FROM post_table") or die(mysqli_error($con));

$fetch_images = mysqli_query($con, "SELECT id_picture, picture_name FROM attach_picture WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($con));

$fetch_comments = mysqli_query($con, "SELECT id_comment, comment_text FROM comment_table WHERE id_post = ".$row_postingan['id_post']."") or die(mysqli_error($con));