PHP MySQL用逗号回显变量

时间:2013-04-22 10:43:25

标签: php mysql

如何在每个echo-out变量之后添加逗号,但不是在最后一个变量之后?

目前我显示如下列表:

    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>';

6 个答案:

答案 0 :(得分:2)

您可以将它们添加到数组中,然后将implode数组添加到数组中:

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

这将逻辑与输出分开,只要有可能,您应该努力。当你回到这段代码时,它会让你的生活更轻松6个月!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

尝试使用 implode

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

echo implode(', ', $blogDisplay);

答案 3 :(得分:1)

您的代码只需要进行一些修改才能实现上述任务,

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

希望它有所帮助。

答案 4 :(得分: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.' ';
}

答案 5 :(得分:0)

如果您只是从数据库中迭代一组标记,那么使用此查询会更容易:

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

另请参阅:GROUP_CONCAT()

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

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

str_replace('_', '&nbsp;', $tags);