Как вывести многострочный текст из БД?

Ссылка скопирована
17 февраля 2026 1 ответ

Всем привет и заранее благодарен за помощь. Записываю в базу текст из поля textarea
Пример:
первая строка
вторая
третья
четвертая

Как его вывести что бы высота строки показывала весь текст а не выводить строкой или в случае вывода в textarea показывает только первые две строки а остальные что бы увидеть нужно расширить поле. Данный текст редактировать нет необходимости, просто нужно что бы верно выводился. Помогитей пожалуйста. Использую бутстрап разметку.

Дополнительно:

И код как бы добавляете в бд и как выводите из неё не покажете?
Вам нужно записывать через подготовленные выражения, и не фильтровать это поле на выходе. Защиту уже сами организуите, это по сути дыра

  • Защиту можете организовать белым списком через strip_tags возможно добавить nl2br
  • Смотрите что у вас в бд через phpmyadmin и что в арбузере через ctrl + u
  • Так же уточните, не цмс это какая нибудь? Например wp
  • Я-бы предположил что есть хорошая практика разделения логики.
    База - ничего не знает о дизайне.
    PHP (приложение) - ничего не знает о типе источника данных (может это БД а может NoSQL система а может
    и Rest сервис).

    Поэтому твоя задача сводится к написанию одной функии которая выводит строки. На вход
    приходит одна строка. И на выходе - строка с дизайном с переносами и так далее.

    Вот давай эту функцию и обсуждать.

  • Дмитрий, Вот запрос который отправляется для вывода данных
    // Выборка данных о компании     $query = "SELECT * FROM company WHERE user_id = $user_id AND id = $company_id";     $result = $conn->query($query);

    // Выборка данных о компании $query = "SELECT * FROM company WHERE user_id = $user_id AND id = $company_id"; $result = $conn->query($query);

    так выводится нужное мне поле

    <tr>                                     <th>Бренд шин</th>                                     <td><textarea><?= $company['tire_brand'] ?></textarea></td>                                 </tr>

    <tr> <th>Бренд шин</th> <td><textarea><?= $company['tire_brand'] ?></textarea></td> </tr>

    И обычным запросом идет запись в БД

    // Установка кодировки перед выполнением запроса     $conn->set_charset('utf8mb4');     $query = "INSERT INTO company (user_id,  tire_brand) VALUES ('$user_id', '$tire_brand')";

    // Установка кодировки перед выполнением запроса $conn->set_charset('utf8mb4'); $query = "INSERT INTO company (user_id, tire_brand) VALUES ('$user_id', '$tire_brand')";

    ну и поле в которое вводятся данные

    <div class="col-md-3">         <label class="form-label" for="tire_brand">Бренд шин:</label>         <textarea class="form-control" type="text" id="tire_brand" name="tire_brand"></textarea><br> 			  </div>

    <div class="col-md-3"> <label class="form-label" for="tire_brand">Бренд шин:</label> <textarea class="form-control" type="text" id="tire_brand" name="tire_brand"></textarea><br> </div>

  • Дмитрий, это не цмс и не фреймворк, практикуюсь.
  • Валерий Витальевич, query стандартный mysqli или PDO или какая либо обёртка?
  • Валерий Витальевич, что в pma и что печатает арбузер через просмотр исходного кода тоже лучше показать
  • Валерий Витальевич, если практикуетесь, рекомендую почитать про xss и sql inject. Тут обе эти уязвимости
  • Скорее всего в базе сохранены обычные переносы строк (CR/LF), которые игнорируются в html. Нужно преобразовать их в теги br. Для этого есть специальная функция nl2br()

    • Благодарю за рекомендацию, но у меня теперь еще одна сложность возникла. Данные записываются с br выводяться как мне нужно, а вот при редактировании они подгружаются с br , как этот момент исправить, подскажите пожалуйста.
    • Валерий Витальевич, а зачем их с br записывать?
      Если вы их редактируете в textarea, то и записывайте как есть, в виде текста. Формат при выводе.
      Если вы их редактируете в html редакторе (типа tinymce), то записывайте в виде html и проблем с редактированием и выводом не будет.
    • Валерий Витальевич, ну а вообще заменить обратно на переводы строк
      str_replace('<br>', "n", $str)
    Нужно решить такую задачу?

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

    Заказать помощь
    Лучший ответ
    1
    Кирилл JS Ответ

    Для вывода многострочного текста из базы данных в PHP, вам потребуется использовать специальные функции для работы с базой данных, такие как mysqli или PDO.

    Вот пример кода на PHP с использованием mysqli для получения и вывода многострочного текста из базы данных:

    // Подключение к базе данных
    $mysqli = new mysqli('хост', 'пользователь', 'пароль', 'база_данных');
     
    // Проверка соединения
    if ($mysqli-&gt;connect_error) {
        die('Ошибка подключения: ' . $mysqli-&gt;connect_error);
    }
     
    // Запрос к базе данных для получения многострочного текста
    $query = "SELECT многострочное_поле FROM таблица WHERE условие";
    $result = $mysqli-&gt;query($query);
     
    // Проверка наличия данных
    if ($result-&gt;num_rows &gt; 0) {
        // Вывод каждой строки многострочного текста
        while ($row = $result-&gt;fetch_assoc()) {
            echo $row['многострочное_поле'] . "<br>";
        }
    } else {
        echo "Нет данных";
    }
     
    // Закрытие соединения с базой данных
    $mysqli-&gt;close();

    // Подключение к базе данных $mysqli = new mysqli('хост', 'пользователь', 'пароль', 'база_данных'); // Проверка соединения if ($mysqli-&gt;connect_error) { die('Ошибка подключения: ' . $mysqli-&gt;connect_error); } // Запрос к базе данных для получения многострочного текста $query = "SELECT многострочное_поле FROM таблица WHERE условие"; $result = $mysqli-&gt;query($query); // Проверка наличия данных if ($result-&gt;num_rows &gt; 0) { // Вывод каждой строки многострочного текста while ($row = $result-&gt;fetch_assoc()) { echo $row['многострочное_поле'] . "<br>"; } } else { echo "Нет данных"; } // Закрытие соединения с базой данных $mysqli-&gt;close();

    В этом коде мы сначала подключаемся к базе данных, затем делаем запрос для получения многострочного текста из указанной таблицы с заданным условием. Если данные найдены, мы выводим каждую строку многострочного текста, а затем закрываем соединение с базой данных.

    Не забудьте заменить 'хост', 'пользователь', 'пароль', 'база_данных', 'таблица', 'многострочное_поле' и 'условие' на соответствующие значения вашей базы данных и запроса.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно