2011-06-15 53 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);