如果我想在示例中按如下方式显示文本,怎么办呢?
$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
while($p=mysql_fetch_array($tmp)) {
$tekst2=$p['friend'].", ";
}
$text_complete=$tekst1.$tekst2;
echo $text_complete;
如何组合两个文本,从循环中获取的文本和固定的文本?
答案 0 :(得分:1)
我认为你应该这样做:
$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
$friends = array();
while($p = mysql_fetch_array($tmp)) {
$friends[] = $p['friend'];
}
$tekst2= implode(', ', $friends);
$text_complete=$tekst1.$tekst2;
echo $text_complete;
否则每次都会覆盖变量!
编辑 - 我在Xaerxess答案中更正了使用内爆的代码。 Previousli我刚连接并使用substr删除尾随的逗号和空格
答案 1 :(得分:1)
您可以使用:
$tekst2 .= $p['friend'].", ";
添加到变量(而不是覆盖它。然后删除尾随的逗号:
$text_complete=$tekst1. rtrim( $tekst2, "," );
答案 2 :(得分:1)
$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst = '';
$tekst='Your total number of friends are: '.$total.'. Your friends are: ';
while($p=mysql_fetch_array($tmp)) {
$tekst.=$p['friend'].", ";
}
echo $tekst;
答案 3 :(得分:1)
$tekst2 = new Array();
while($p=mysql_fetch_array($tmp)) {
$tekst2[] = $p['friend'];
}
$text_complete = $tekst1 . implode(', ',$tekst2);
但更好的方法是在sql中使用GROUP_CONCAT
答案 4 :(得分:1)
使用PHP implode / join funciton,因此最后没有任何尾随逗号。在这种情况下:
$fiends = array();
while($p = mysql_fetch_array($tmp)) {
$friends[] = $p['friend'];
}
implode(', ', $friends);
编辑:我基本上将Billy Moon的答案翻了一番。更不要使用mysql_*
函数 - 不推荐使用 - 请参阅下面的评论。
答案 5 :(得分:1)
$tmp=mysql_query("SELECT ... FROM ....");
$total=mysql_num_rows($tmp);
$tekst1='Your total number of friends are: '.$total.'. Your friends are: ';
while($p=mysql_fetch_array($tmp))
{
$tekst1 .= $p['friend'].", "; // add friend names from MySQL result.
}
$tekst1 = substr($tekst2, 0, -2);//Remove comma.
echo $tekst1; // Outputs the wanted string