2013-04-22 17 views
0

我該如何在每個echo'ed out變量之後添加逗號,但不會在最後一個之後添加逗號?用逗號分隔的MySQL MySQL回顯變量

在電流I顯示列表,像這樣:

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

其中是'echo'? – 2013-04-22 10:44:58

+2

ereg函數已被棄用。使用'preg_replace()'代替它們。請參見[如何將ereg表達式轉換爲PHP中的preg](http://stackoverflow.com/q/6270004) – 2013-04-22 10:46:11

+0

您使用的查詢是什麼?如果你只是遍歷標籤,你可以在MySQL本身內部完成大部分工作。 – 2013-04-22 10:50:52

回答

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

這可以工作,但它也會在列表的開頭添加一個逗號:/ – Newcastlefan 2013-04-22 11:16:35

+0

@Newcastlefan它不會打basically,基本上我有一個if條件來檢查$ blogDisplay!=「」then僅添加一個 「」(逗號) – 2013-04-22 11:17:51

+0

我使用: \t而($行= mysqli_fetch_array($ QUERY3)){ \t \t $標籤= $行[ '標記']; \t \t $ tag = str_replace(「_」,「 」,$ tag); ($ blogDisplay!=''){ $ blogDisplay。=「,」; ($ tag!=「」){ $ blogDisplay。= $ tag; }} \t 但是,這顯示爲: – Newcastlefan 2013-04-22 11:21:23

1

嘗試使用implode

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

echo implode(', ', $blogDisplay); 
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

你的代碼需要進行一些修改只是實現上述任務,

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

希望它能幫助。

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.' '; 
} 
0

如果你只遍歷了一組從數據庫標籤會更容易使用這個查詢:

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

另請參閱:GROUP_CONCAT()

MySQL的標籤已經很好地連接在一起了。

另外,請勿使用eregi_replace;實際上,不要使用正則表達式:

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