格式化我的数据库中的字符串,以便有空格

时间:2015-04-18 16:54:31

标签: php mysql

对不起,因为这有点难以解释,所以这里: 我正在尝试从我的数据库中echo文本。

首先,我从数据库中获取信息:

mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);
$sql = mysql_query("SELECT * FROM docs");
while($row = mysql_fetch_array($sql))
{
   $text = html_decode_entity($row['content']);
}

PS:定义了$db_host$db_user$db_pass

如果文本跳过了行(当你点击标签时),我用一个简单的echo回显它们 像这样:

echo "$text";

文字只有一行。

问题:如何显示跳过的行?

我知道这个问题没有得到很好的解释,但是,是的!

3 个答案:

答案 0 :(得分:1)

在循环内部,您不会将数据附加到$text变量!

你可以这样做:

mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);
$sql = mysql_query("SELECT * FROM docs");
$text = "";
while($row = mysql_fetch_array($sql))
{
   $text .= html_decode_entity($row['content']) . "<br />";
}

请注意,我使用了.=。其中,具有相同的含义:

$text = $text . html_decode_entity($row['content']) . "<br />";

我必须提出的另一个建议是,当您回显变量的内容时,您不必将变量括在双引号中。你可以这样做:

echo $text;

答案 1 :(得分:1)

如果我理解正确,并根据您的代码判断。您希望显示查询的所有结果,而不仅仅是一个。

$text = html_decode_entity($row['content']);会导致您只将最后一个结果分配给$text变量。

您可以在循环之前声明$text = array();。并将结果放入数组$text[] = html_decode_entity($row['content']);。并显示如下:

foreach($text as $line){
    echo $line."\r\n";
}

或者您可以在循环之前声明$text = ''。并且在循环中连接像$text .= html_decode_entity($row['content'])."\r\n";这样的结果并像你一样回应它。

答案 2 :(得分:0)

正确的答案是使用nl2br()显然它正在用"\r\n"替换空格如果我理解正确的话......