2012-07-22 68 views
9

對於過去的1/2天,我一直試圖將16行ID存儲到一個字符串中,並用逗號分隔每個ID。我得到的數組來自MySQL。我得到的錯誤是從一個逗號分隔的字符串中將一個數組分解爲一個逗號分隔的字符串

破滅()函數:傳遞的參數無效

$str=array(); 
$string=""; 
while($row = mysql_fetch_row($result)) 
{ 
    $user_id=$row; 
    $str=$user_id; 
    foreach($str as $p=>$v){ 
     comma($v); 
    } 
} 

function comma($v){ 
    $string= implode(",",$v); echo $string; 
} 
+3

請,不再是一個壞人,不逗號分隔值存儲到一個獨特的領域。使用另一個表並將每個值存儲到它自己的行中。 (你正在創建一個問題,如果你的shema的結構很好,就不會存在) – OcuS 2012-07-22 11:36:26

+0

implode需要一個數組作爲第二個參數 – Leon 2012-07-22 11:39:07

+0

@oCuS我不知道他是否試圖「將逗號分隔值存儲到唯一字段中」 ,他只是說他想把它存儲成一個字符串。 – Leon 2012-07-22 11:43:30

回答

12

嘗試是這樣的:

$ids = array(); 
while ($row = mysql_fetch_assoc($result)) 
{ 
    $ids[] = $row["UserID"]; 
} 
echo implode(", ", $ids); 

更換"UserID"與ID在COLUMNNAME你的桌子。

因此:首先構建數組,然後將數組插入一個字符串中。

2

有我的解決方案:

SELECT GROUP_CONCAT(UserID) as string FROM Users; 

該功能的分隔符是 '' 默認。

0
$query = 'SELECT id FROM your_table'; 
$rs = mysql_query($query); 

$row = mysql_fetch_array($result); 
return implode(',', $row); 

結果1,2,3 ...