2011-07-02 174 views
-2

我想顯示在逗號用逗號如何拆分用逗號分隔的字符串?

這裏分隔字符串是我的代碼

function GetItemIds() 
{ 
    $i=0; 

    $query="SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT 10"; 
    $str=""; 

    $result= mysql_query($query); 

    while($result1= mysql_fetch_row($result)) 
    { 
     if($i==0) 
     { 
      $str .= $result1[0]; 
     } 
      else 
     { 
     $str .=",".$result1[0]; 
     } 
     } 

     echo $strs; 
    } 

但在這裏我打印STR我有輸出12345678這樣的,但我想這樣1,2,3,4請幫我

在此先感謝

+2

你忘了增加'$ i' – Stephen

+1

它可能是也更優雅(但有可能是一個品味的問題)推數組中的元素和然後使用join/implode函數:http://php.net/manual/en/function.join.php – ShinTakezou

回答

1

一個更好的辦法:

function GetItemIds($num = 10) { 
    $q = "SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT " . $num; 
    $result = mysql_query($q); 
    $ids = array(); 
    while($row = mysql_fetch_assoc($result)) { 
     $ids[] = $row['item_id']; 
    } 
    return implode(',', $ids); 
} 

echo GetItemIds(); 
2

嗯,很明顯,你不是在循環的末尾增加$i變量。

+2

顯然?顯然它不是那麼明顯。 – Stephen

+1

hm,如果您在閱讀「abc」時希望得到「a,b,c」,那麼它一定是因爲它從不執行'$ str。=「,」。$ result1 [0];'如果它從不執行它,它意味着$ i永遠不會!= 0,這樣一個事件的最明顯的原因(在考慮晦澀的錯誤之前)是$ i不會改變,如果你不改變它,$ i不會改變,所以它是錯過了$ i的更新...顯然*並不那麼荒謬。事實上,這些錯誤在少量時間內眼睛碰撞並不意味着事情發生的原因通常並不明顯。對於OP來說,現在看起來很明顯! – ShinTakezou

0

你的代碼檢查是否$i == 0,如果是你做$str .= $result1[0]

$i定義爲0之後,您永遠不會更改它。將$i++添加到循環的末尾。

0
function GetItemIds() 
{ 
    $i=0; 

    $query="SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT 10"; 
    $str = ""; 
    $result = mysql_query($query); 

    while($result1 = mysql_fetch_row($result)) 
    { 
     if($i == 0) 
     { 
      $str .= $result1[0]; 
     } 
     else 
     { 
      $str .=",".$result1[0]; 
     } 

     $i++; 
    } 

    echo $strs; 
} 
2

另一種實現的想法:

$a = array(); 
while($result1= mysql_fetch_row($result)) 
{ 
    $a[] = $result1[0]; 
    } 
echo implode(',', $a); 
0

我會用一個數組,然後加入:

$arr = array(); 
    while($result1 = mysql_fetch_row($result)) 
    { 
    array_push($arr, $result1[0]); 
    } 
    return join(",", $arr); 

關於你的代碼,你需要增加$ i,並返回$ str而不是$ strs ...(只有我猜錯錄錯誤)

-1

我想你想從結果數組中創建一個格式化的字符串。

更換

while($result1= mysql_fetch_row($result)) 
{ 
... 
} 

通過

mysql_fetch_array($result,MYSQL_NUM); 
$str = implode(',',$result);