php-эхо из базы данных со строками прерывания

#php #sql #echo

#php #sql #эхо

Вопрос:

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

Привет, Роберт,
Это всего лишь тест!.
Джейсон.

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

Привет, Роберт, это всего лишь тест!. Джейсон.

Это форма:

 <textarea name="newMessage" wrap="hard" cols="30" rows="3"></textarea>

<input type="submit" name="submit" value="Ingresar"> </>
  

Это код, который я использую для отображения текста:

 <?php   
    while($row = mysql_fetch_assoc($messages)){
        echo $row['mensaje']."<br/>";
    }
?>
  

Это то, что я использую для вставки кода:

 if(isset($_POST['submit'])){        

            $check4LB = $_POST['newMessage'];
            while($letter = mysql_fetch_assoc($check4LB)){
                if($letter=' '){
                $letter='<br/>';
                }
            } /////I know this is not write bu is the idea i thgouht at least

            $query = mysql_query("SELECT (ifnull(max(idRegistro),0)   1) as id FROM messages");
            $row = mysql_fetch_array($query);
            $idMax = $row['id'];     
            $insertMessage = "INSERT INTO messages(idRegistro, mensaje) VALUES ('".$idMax."','".$letter."')";

             mysql_query($insertMessage) or die(mysql_error());
             echo "<meta http-equiv=Refresh content="0 ; url=".$_SERVER['PHP_SELF']."">"; 
   }
  

Комментарии:

1. пользователь nl2br при вставке $letter, т.е. nl2br ($letter)

2. @JapanPro Лучше сохранять данные как есть и форматировать их только тогда, когда вы хотите их отобразить.

Ответ №1:

попробуйте echo nl2br($row['mensaje']);

Комментарии:

1. здесь nl2br($row[‘stackoverflow_comment_text’]); не работает

Ответ №2:

Используйте nl2br() для вывода из базы данных.

Ответ №3:

Попробуйте это

 <?php   
    while($row = mysql_fetch_assoc($messages)){
     echo str_replace("r",'<br/>',$row['mensaje']); 
    }
?>
  

Комментарии:

1. Существует 3 типа перевода строки: r на Mac, n в linux / unix, rn Windows. Таким образом, лучше использовать nl2br() которые обрабатывают разницу.