Вставка текста из textarea в базу данных MySQL без потери форматирования - PullRequest
5 голосов
/ 03 мая 2011

Я пытаюсь добавить текст из текстовой области на моем сайте в базу данных MySQL.

Ниже приведен код PHP, который добавляет текст в базу данных.

if (isset($_POST['text']))
{
    $text = sanitizeString($_POST['text']);
    $text = preg_replace('/\s\s+/', ' ', $text);

    $query = "SELECT * FROM profiles WHERE user='$user'";
    if (mysql_num_rows(queryMysql($query)))
    {
        queryMysql("UPDATE profiles SET text='$text' where user='$user'");
    }
    else
    {
        $query = "INSERT INTO profiles VALUES('$user', '$text')";
        queryMysql($query);
    }

}
else
{
    $query  = "SELECT * FROM profiles WHERE user='$user'";
    $result = queryMysql($query);

    if (mysql_num_rows($result))
    {
        $row  = mysql_fetch_row($result);
        $text = stripslashes($row[1]);
    }
    else $text = "";
}

$text = stripslashes(preg_replace('/\s\s+/', ' ', $text));

И ниже код формы.

<textarea name='text' cols='40' rows='3'>$text</textarea><br /> 

Но когда данные вводятся, они отображаются в базе данных правильно, но не отображаются правильно. Смотрите изображения ниже:

Введенный текст

the text that is entered

Как текст отображается на странице

this is how the text is displayed

Как текст в базе данных

this is the text in the database

Это код PHP, который отображает текст на странице.

$result = queryMysql("SELECT * FROM profiles WHERE user='$user'");

    if (mysql_num_rows($result))
    {
        $row = mysql_fetch_row($result);
        echo stripslashes($row[1]) . "<br clear=left /><br />

Надеюсь, вы можете помочь !!

РЕДАКТИРОВАТЬ: добавлен дополнительный код PHP

Ответы [ 2 ]

9 голосов
/ 03 мая 2011

Ваш текст, если вы не используете редактор форматированного текста, например Mark-down (как здесь, в Stackoverflow), оформляется вашим CSS, а не содержимым самого textarea.

Если проблема заключается в сохранении новых строк, то вы можете выполнить строку через функцию nl2br($text) перед сохранением или извлечением из базы данных.

Я быПредлагаю поискать лучше, но это только мое мнение (и я не могу предложить никаких доказательств, подтверждающих это).

4 голосов
/ 03 мая 2011

Или вы можете использовать

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