2012-03-21 30 views
1

我打印放置在MySQL數據庫中的一組單詞,並使用PHP檢索它。我想以逗號分隔列表的形式呈現它,但我不需要打印或刪除最後一個逗號。我怎麼能這樣做?刪除最後一個逗號或防止它被打印MySQL/PHP

我的確嘗試過使用rtrim,但我沒有把它做對。 這是我的代碼因爲它是今天:

<?php 

$query0 = "SELECT LCASE(ord) FROM `keywords` ORDER BY RAND()"; 
$result0 = mysql_query($query0); 

while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC)) 
{ 
$keyword = $row0['LCASE(ord)']; 

echo "$keyword, "; 
?> 

我曾嘗試使用rtrim,我的嘗試是這樣的(我可能會很誠實地說,我在我的頭頂在此;))

$keyword = $row0['LCASE(ord)']; 
$keywordc = "$keyword, "; 
$keyword- = rtrim($keywordc, ', '); 
echo "$keyword-, "; 

正如你可能想象,這並沒有多大打印(但至少它沒有留下我一個空白頁...)

回答

2

我通常做這種通過將結果在一個數組第一

$some_array = array(); 
while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC)) { 
    $some_array[] = $row0['LCASE(ord)']; 
} 

後來乾脆:

echo "My List: " . implode(', ', $some_array); 
// Output looks something like: 
My List: ord1, ord2, ord3, ord4 
0
substr($string, 0, -1); 

,消除最後一個字符。

+0

但如何將其打印出來,這樣它會刪除最後一個單詞中的最後一個字符,而不是每個單詞中的最後一個字符? – 2012-03-21 01:34:22

4

我會做:

$keywords = array(); 
while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC)) 
{ 
    $keywords[] = $row0['LCASE(ord)']; 
} 

echo implode(',', $keywords); 
+0

'$ keywords = array();'做了什麼?因爲,如果我刪除它仍然會產生相同的結果。雖然這是一個好的結果。 – 2012-03-21 01:20:01

+0

將'$ keywords'變量初始化爲一個數組。 PHP不需要它,但有人認爲它是一種更好的編碼習慣。上面的一個錯誤是:'$ keyword = $ row0 ['LCASE(ord)'];'應該是'$ keywords [] = $ row0 ['LCASE(ord)'];' – augustknight 2012-03-21 02:16:32

+0

好的抓住augustknight,I已經編輯了答案。 – Rocky 2012-03-21 16:30:14