0

我将如何在每个回显变量之后添加逗号,而不是在最后一个变量之后添加逗号?

目前我显示列表如下:

    while ($row = mysqli_fetch_array($query3)) {
        $tag = $row['tag'];  
        $tagformat = eregi_replace("_", " ", $tag);
$blogDisplay .= $tagformat.' ';
        }

这显示: testtag1 testtag2 testtag3

我希望它显示:testtag1、testtag2、testtag3

任何帮助都会很棒!

编辑 SQL 查询:

$sqlCommand3 = "SELECT tag FROM blogtags WHERE blogid='$blogid'";
        $query3 = mysqli_query($myConnection, $sqlCommand3) or die (mysqli_error());

$blogDisplay 还有其他值:

$blogDisplay .= '<h1><a href="/blog/'. $blogseourl .'"> ' . $blogtitle . ' </a></h1> ' . $contentshort . '... <a href="/blog/'. $blogseourl .'">Read More...</a><br /><br /> ' . $author . ' posted on ' . $blogtime . ' &#124;  Category: ' . $category . ' &#124;  Tags: ';
    while ($row = mysqli_fetch_array($query3)) {
        $tag = $row['tag'];  
        $tag = str_replace("_", "&nbsp;", $tag);
$blogDisplay .= $tag.' ';
        }
$blogDisplay .= ' &#124; <a href="/blog/'. $blogseourl .'#disqus_thread"></a>';
4

6 回答 6

2

您可以将它们添加到一个数组中,然后在稍后内该数组:

$tags = array();
while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", "&nbsp;", $tag);
    $tags[] = $tagformat;
}
echo implode(', ', $tags);

这将逻辑与输出分开,您应该尽可能争取。当您回到此代码时,它将让您的生活在 6 个月后更轻松!

于 2013-04-22T10:47:30.120 回答
1
$blogDisplay = "";
while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", "&nbsp;", $tag);
    if ($blogDisplay!="") {
           $blogDisplay.=",";
     }
     if (trim($tagformat)!=""){
         $blogDisplay .= $tagformat;
     }
    }
于 2013-04-22T10:45:26.567 回答
1

尝试使用implode

$blogDisplay = array();
while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", "&nbsp;", $tag); 
    $blogDisplay[] = $tagformat;
}

echo implode(', ', $blogDisplay);
于 2013-04-22T10:47:23.583 回答
1

您的代码只需要进行一些修改即可完成上述任务,

while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", "&nbsp;", $tag);
    $blogDisplay .= $tagformat.', '; //Here is the "," 
    }

希望能帮助到你。

于 2013-04-22T10:47:42.127 回答
1

我没有看到你的回声,但我会假设它在 while 循环之外(请考虑使用 foreach 循环)。

只需将逗号放在 eregi_replace 中的空格之前。

while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", ",&nbsp;", $tag);
    $blogDisplay .= $tagformat.' ';
}

或者:

while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", "&#44;&nbsp;", $tag);
    $blogDisplay .= $tagformat.' ';
}

或者:

while ($row = mysqli_fetch_array($query3)) {
    $tag = $row['tag'];  
    $tagformat = eregi_replace("_", ", ", $tag);
    $blogDisplay .= $tagformat.' ';
}
于 2013-04-22T10:49:20.437 回答
0

如果您只是迭代数据库中的一组标签,则使用此查询会更容易:

SELECT GROUP_CONCAT(`tag` DELIMITER ', ') AS `tag`
FROM tags
WHERE ...

也可以看看:GROUP_CONCAT()

MySQL 已经将这些标签很好地连接在一起了。

另外,不要使用eregi_replace; 事实上,不要使用正则表达式:

str_replace('_', '&nbsp;', $tags);
于 2013-04-22T10:53:13.607 回答