2011-06-15 91 views
0

我無法爆MySQL數據庫陣列,下面是我使用的代碼的一個示例:內爆一個MySQL陣列

mysql_select_db($database_wlast, $wlast); 
$query_category = "SELECT product_name FROM raw_materials WHERE category = '$_POST[category]'"; 
$category = mysql_query($query_category, $wlast) or die(mysql_error()); 
$row_category = mysql_fetch_array($category); 

$result= implode(',',$row_category); 

echo $result; 

結果如下:

Amber glass bottle 100ml, Amber glass bottle 100ml 

即:它正在將數組中的第一個值吐出兩次而沒有其他值。

請幫忙!

回答

0
while($row_category = mysql_fetch_array($category)){ 
    $result[] = implode(',',$row_category); 
} 
echo implode("\n",$result); 
0

mysql_fetch_array($category, MYSQL_NUM)使用或mysql_fetch_row($category)mysql_fetch_assoc($category)

的問題是,在默認情況下mysql_fetch_array返回列舉和關聯數組結合起來。

0

這就是mysql_fetch_array()返回結果的兩倍:數字鍵和字符串鍵。你可能想要mysql_fetch_assoc()

0

您想從您的數據庫中產生所有產品名稱嗎?如果是的話,比你上面的代碼是錯誤的。

mysql_fetch_array($ category)只返回1行數據庫。如果你想打破你的所有產品名稱比代碼應該是這樣的:

$result=""; 
while($row_category=mysql_fetch_array($category)) 
    $result=$result.",".$row[0]; 

或你這樣的事情。您將所有產品名稱放在陣列上,並將其解壓。像這樣:

while($row_category=mysql_fetch_array($category)) 
    $result[]=$row[0]; 

$newResult=implode(",",$result);