2012-04-15 97 views
-1

原來這就是我想要做的..結合數組元素連接成一個字符串

$sql="SELECT * FROM `members"; 
while($rew = mysql_fetch_array($sql)){ 
    $var[] =",'".$rew['username']."'"; 
} 
print_r ($var) 

所以我得到的結果是:

Array ([0] => ",'John'", [1] => ",'Mason'", [2] => ",'Greg'", [3] => ",'Paul'") 

所以現在我想的變量顯示全部當我回應的結果。例如:

<?php echo $var[1] ?> 

而結果將只是,'Mason'

我如何得到它,以便我可以echo $ var [*]並獲得所有結果。 「約翰·梅森,格雷格保羅」。

我一直在試圖弄清楚這很長一段時間,對我來說變得非常沮喪。有人可以幫幫我嗎。

+0

如何標題涉及到這個問題? – 2012-04-15 00:28:38

+0

請問你的問題時不要SHOUT。它不會讓你更快注意到它,它會讓你的主題更難閱讀。這也浪費了編輯人員修復它的時間,他們可能會利用這段時間嘗試回答問題。謝謝。 :) – 2012-04-15 00:30:10

+0

@ZianChoy:只是改變它,以更好地反映意圖。 – 2012-04-15 00:34:27

回答

2

使用PHP的implode函數。

<?php echo implode(",", $var) ?> 

,改變你的循環代碼:

$var[] = $rew['username']; 
+0

實際上,他的循環已經將逗號附加到開頭。所以每個項目的格式是','Name'。 – animuson 2012-04-15 00:34:09

+0

@animuson:剛注意到我自己。修改我的答案。 – 2012-04-15 00:35:59

+0

我真的很感激你的幫助。這工作!非常感謝你和其他人。 – Brian 2012-04-15 00:50:41

1

不能陣列上直接使用回聲。您可以使用像這樣的控制結構來循環訪問陣列,其中foreach,或者您可以使用專爲操作陣列而設計的內置函數。爲了得到輸出你正在尋找嘗試:

<?php echo implode(',', $var);?> 
0

這裏有一個很好的教程:Tizag - MySQL Fetch Array

這應該工作:

$query = "SELECT * FROM `members`"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    echo $row['username']; 
    echo "<br />"; 
} 
0

您可以將循環更改爲類似:

$var = ""; 
while($rew = mysql_fetch_array($sql)){ 
    $var .= ",'" . $rew['username'] . "'"; 
} 
0

這裏是一個簡單的單線程,也添加引號

<?php echo "'" . implode("','", $var) . "'"; ?> 

,如果你使用PDO,你可以得到的用戶名更容易

<?php 
$usernames = $db->query("SELECT username FROM members")->fetchAll(PDO::FETCH_COLUMN); 
echo "'" . implode("','", $usernames) . "'"; 
?> 
相關問題