php 该怎么循环输出数据库里返回的值

$result = mysql_query("select `goods_id` from `sdb_goods` where `astrict_id`=1");
while($goods_id = mysql_fetch_array($result)){
echo $goods_id;
}
输出来都是arrayarrayarray

echo $goods_id[0]; 或者 echo $goods_id["goods_id"];

mysql_fetch_array($result) 是返回一个数组
你可以在通过
$result = mysql_query("select `goods_id` from `sdb_goods` where `astrict_id`=1");
var_dump(mysql_fetch_array($result));

我看了你的追问
我觉得你是while($goods_id = mysql_fetch_array($result))没有理解
是把每一次执行的mysql_fetch_array 赋给 $goods_id
比如有三行数据
id name
1 123
2 456
3 789
那么while第一次执行的是把数组 array("name"=>"123") 赋给 $goods_id
第二次就是你查询出来的第二项,也就是 456..
希望你可以明白

也就是$goods_id得到的是一个数组,你需要输入键名引索出来
另外可以查查mysql_fetch_array,它还有个选项,控制引索出来按照数字还是查询数据的名字
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-01

设定&value为取出值

<?php
$array = array(1, 2, 3, 4, 5, 6, 7);
foreach ($array as $value) {
?>
<tr>
<td><?php echo $value; ?></td>
</tr>
<?php
}
?>

第2个回答  2011-12-29
因为你输出的$goods_id是一个数组。你把echo改成print_r就可以输出来了追问

我这样用FOR为什么循环不出来?
$goods_num = mysql_num_rows($result);
for($i=0;$i<$goods_num;$i++){
echo $goods_id[goods_id][$i];
}

追答

echo $goods_id[$i]['goods_id'];你试试

第3个回答  2011-12-29
echo $goods_id[0]['goods_id'];追问

我这样用FOR为什么循环不出来?
$goods_num = mysql_num_rows($result);
for($i=0;$i<$goods_num;$i++){
echo $goods_id[goods_id][$i];
}

追答

mysql_num_rows返回你查询到的条数,相当于count(),是数字类型,而不是数组类型,所以不能被循环,例如$goods_num = 93 ; 93不可以被循环。

第4个回答  2011-12-29
while($goods_id = mysql_fetch_array($result)){
echo $goods_id[‘goods_id’];
}追问

我这样用FOR为什么循环不出来?
$goods_num = mysql_num_rows($result);
for($i=0;$i<$goods_num;$i++){
echo $goods_id[goods_id][$i];
}

追答

从数据查询返回的第一个结果:$result 他不是个数组,是个带有ID的资源,必须先借助mysql_metch_array一类的函数把$result资源转化为数组

相似回答