Как создать json с правильным форматом в php? - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь сгенерировать json с данными из моей базы данных, поэтому, когда я получаю данные, все хорошо, проблема возникает, когда я помещаю данные в формате JSON, похоже, что это неправильно:

{"comment":[{"id_comment":1,"photo":"imgU\/default.png","full_name":"MercadoPago","comment":"Primero"}]}{"comment":[{"id_comment":2,"photo":"imgU\/default.png","full_name":"MercadoPago","comment":"Segundo"}]}

Итак, я хочу сгенерировать json, который выглядит следующим образом:

[{"id_comment":1,"photo":"imgU\/default.png","full_name":"MercadoPago","comment":"Primero"},
{"id_comment":2,"photo":"imgU\/default.png","full_name":"MercadoPago","comment":"Segundo"}]

Мой код следующий:

global $id_comentador;
global $id_comentario;
global $comment;

$arregloComentarios = json_decode($row['comentarios'], true);

foreach ($arregloComentarios as $value) {

    $id_comentario = $value["id_comentario"];
    $id_comentador = $value["id"];
    $comment = $value["comment"];

    $consultarComentador = "select id,first_name,last_name,foto from users where id='$id_comentador';";

    $coo["comment"] = array();
    $arregloProyectos = traerDatos($consultarComentador);
    $num = count($arregloProyectos);

    if ($num > 0) {

        foreach ($arregloProyectos as $row2) {

            $foto = $row2["foto"];
            $foto2 = $row2["first_name"];
            $foto3 = $row2["last_name"];
            $tmp = array();
            $tmp["id_comment"] = $id_comentario;
            $tmp["photo"] = $foto;
            $tmp["full_name"] = $foto2.''.$foto3;
            $tmp["comment"] = $comment;
            global $coo;
            $coo['comments'] = array();
            array_push($coo["comments"], $tmp);

        }//Cierra foreach

        echo json_encode($coo);
    }
}

Буду благодарен за ваши ответы ,

1 Ответ

1 голос
/ 08 марта 2020

(Скопировано из комментария)

Создайте массив $comments вне вершины foreach и pu sh в этот вместо $coo["comments"]. Затем выполните echo json_encode($comments) после извне foreach.

global $id_comentador;
global $id_comentario;
global $comment;

$arregloComentarios = json_decode($row['comentarios'], true);

$comments = [];

foreach ($arregloComentarios as $value) {
    $id_comentario = $value["id_comentario"];
    $id_comentador = $value["id"];
    $comment = $value["comment"];

    $consultarComentador = "select id,first_name,last_name,foto from users where id='$id_comentador';";

    $arregloProyectos = traerDatos($consultarComentador);
    $num = count($arregloProyectos);

    if ($num > 0) {
        foreach ($arregloProyectos as $row2) {
            $foto = $row2["foto"];
            $foto2 = $row2["first_name"];
            $foto3 = $row2["last_name"];
            $tmp = array();
            $tmp["id_comment"] = $id_comentario;
            $tmp["photo"] = $foto;
            $tmp["full_name"] = $foto2.''.$foto3;
            $tmp["comment"] = $comment;

            $comments[] = $tmp;
        }//Cierra foreach
    }
}

echo json_encode($comments);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...