PHP неверная кодировка JSON - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь получить формат JSON, когда я отправляю конкретный идентификатор в свою базу данных.Поскольку я получаю более одного результата, у меня есть несколько строк, которые я хочу получить обратно.Я получаю разные массивы обратно, но это не правильный формат JSON.Вместо

[{...},{...},{...}]

он возвращается как

{...}{...}{...}

Поэтому [...] отсутствуют и массивы не разделяются запятыми.

Мой кодвнизуФункция "getUserBookingsKl" определена в другом php.

//get user bookings
public function getUserBookingsKl($id) {

    //sql command
    $sql = "SELECT * FROM `***` WHERE `hf_id`=$id AND `alloc_to`>DATE(NOW()) AND NOT `confirmation`=0000-00-00 ORDER BY `alloc_from`";

    //assign result we got from $sql to $result var
    $result = $this->conn->query($sql);

    // at least one result
    if ($result !=null && (mysqli_num_rows($result) >= 1 )) 
    {
        while ($row = $result->fetch_array()) 
        {
            $returArray[] = $row;

        }
    }

    return $returArray;
}

...

...

foreach($userdb as $dataset)
    {
        $returnArray["group"] = $dataset["kf_id"];
        $returnArray["from"] = $dataset["alloc_from"];
        $returnArray["to"] = $dataset["alloc_to"];

       echo json_encode($returnArray);
     #   return;
    }

    // Close connection after registration
    $access->disconnect();

1 Ответ

0 голосов
/ 03 марта 2019

Похоже, вы последовательно испускаете значений, не помещая их в массив.Вам нужно создать массив, нажать на него , затем , вызвать json_encode для получившейся структуры:

$final = [ ];
foreach ($userdb as $dataset)
{
  $returnArray = [ ];
  $returnArray["group"] = $dataset["kf_id"];
  $returnArray["from"] = $dataset["alloc_from"];
  $returnArray["to"] = $dataset["alloc_to"];

  $final[] = $returnArray;
}
echo json_encode($final);

Обратите внимание, что здесь важно не использоватьодна и та же переменная внутри цикла каждый раз, или вы просто толкаете один и тот же массив несколько раз.

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