При попытке вывода получаю - Array

Рейтинг: 0Ответов: 1Опубликовано: 12.03.2023
$id = $_GET['id'];

  $sql = mysqli_query($mysql, 'SELECT * FROM `supportchat` WHERE `id`="'.$id.'"');

   $messages = [];

     foreach($sql as $row){
         if ($row["isoper"] != 1) {
        $messages[][] = "<div class=\"chat-message is-client\"><div class=\"chat-message__content\"><div class=\"chat-message__bubble-wrapper\"><div class=\"chat-message__bubble chat-bubble chat-bubble--client js-message-bubble js-open-chat\"><div class=\"chat-bubble__inner\"><div class=\"chat-bubble__message\"><span class=\"chat-bubble__message-text parsed-text parsed-text--message parsed-text--dark-bg\">{$row["message"]}</span></div></div></div></div></div></div>";
      } else {
        $messages[][] = "<div class=\"chat-message is-operator\"><div class=\"chat-message__content\"><div class=\"chat-message__bubble-wrapper\"><div class=\"chat-message__bubble chat-bubble chat-bubble--operator js-message-bubble js-open-chat\"><div class=\"chat-bubble__inner\"><div class=\"chat-bubble__message\"><span class=\"chat-bubble__message-text parsed-text parsed-text--message parsed-text--very-light-bg\">{$row["message"]}</span></div></div></div></div></div></div>";
      }
    }

Вот код.

Хочу получить список сообщений

<div class="chat-shaft__inner js-chat-shaft" id="chat-messages" style=""><?=$messages?></div>

А получаю Array.

Как решить?

Ответы

▲ 0Принят

Предположу что есть перебор с двойным индексом в $messages[][], это привело к созданию многомерного массива.

    $messages = []; // тут у вас одномерный массив

    foreach($sql as $row){
        if ($row["isoper"] != 1) {
// и тут тоже должен быть
            $messages[] = "<div class=\"chat-message is-client\"><div class=\"chat-message__content\"><div class=\"chat-message__bubble-wrapper\"><div class=\"chat-message__bubble chat-bubble chat-bubble--client js-message-bubble js-open-chat\"><div class=\"chat-bubble__inner\"><div class=\"chat-bubble__message\"><span class=\"chat-bubble__message-text parsed-text parsed-text--message parsed-text--dark-bg\">{$row["message"]}</span></div></div></div></div></div></div>";
        } else {
// и тут тоже
            $messages[] = "<div class=\"chat-message is-operator\"><div class=\"chat-message__content\"><div class=\"chat-message__bubble-wrapper\"><div class=\"chat-message__bubble chat-bubble chat-bubble--operator js-message-bubble js-open-chat\"><div class=\"chat-bubble__inner\"><div class=\"chat-bubble__message\"><span class=\"chat-bubble__message-text parsed-text parsed-text--message parsed-text--very-light-bg\">{$row["message"]}</span></div></div></div></div></div></div>";
        }
    }

Ну и если я вас правильно понял, то соберите все элементы в строку через implode

<div class="chat-shaft__inner js-chat-shaft" id="chat-messages" style=""><?=implode("", $messages)?></div>