2012-03-29 66 views
0

我想implode整數和echo它們作爲一個逗號分隔的字符串。我已經過了將近三個小時,並且無法工作。
我目前得到的輸出是:的Implode整數到mysql選擇語句(結果重複)

104104,105104,105,106

代替:

104,105,106

我檢查了PHP論壇和它說要使用mysql_fetch_assoc來避免這個,但它不起作用。如果有人有任何想法,請幫助。我的PHP是這樣的:

<?PHP 

$user_name = "root"; 
$password = ""; 
$database = "testdb"; 
$server = "127.0.0.1"; 

$db_handle = mysql_connect($server, $user_name, $password); 
$db_found = mysql_select_db($database, $db_handle); 

if ($db_found) 
{ 
$SQL = "SELECT TableA.c1 FROM TableA "; 
$result = mysql_query($SQL); 
    while ($db_field = mysql_fetch_assoc($result)) 
    { 
    $itinarry[]= $db_field['c1']; 
    $string = implode(',',$itinarry); 
    echo $string; 
    } 
mysql_close($db_handle); 

} 
else 
{ 
    echo "Database NOT Found "; 
    mysql_close($db_handle);   
} 

?> 
+0

嘗試此'而($ db_field = mysql_fetch_assos($結果)){$ itinarry [] = array_values($ db_field); } $ string = implode(',',$ itinarry);'。將implode放置在循環之外。 – 2012-03-29 21:59:39

回答

1

它在做什麼是

echo implode(",", array(104))

echo implode(",", array(104, 105))

echo implode(",", array(104, 105, 106))

導致:

104104,105104,105,106

$string = implode(',',$itinarry); 
echo $string; 

送出側出while迴路;

+0

。這個解釋是我所需要的,我把它從循環中拿出來,它完美地工作,非常感謝你。 – 2012-03-30 04:39:15

0

更改碼本:

while ($db_field = mysql_fetch_assoc($result)) 
{ 
$itinarry[]= $db_field['c1']; 
} 
$string = implode(',',$itinarry); 
echo $string; 
+0

謝謝你,這段代碼工作完美,正是我所尋找的。我接受了這樣的聲明:$ string = implode(',',$ itinarry); 走出循環。 – 2012-03-30 04:43:15