对不起,因为这有点难以解释,所以这里:
我正在尝试从我的数据库中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";
文字只有一行。
问题:如何显示跳过的行?
我知道这个问题没有得到很好的解释,但是,是的!
答案 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"
替换空格如果我理解正确的话......