while($array=mysql_fetch_array($query)){ //我理解为把一条记录放在一个数组中
foreach($array as $key => $value){ //遍历数组,来显示所有字段的值
echo $key."=".$value."\t";
foreach($array as $key => $value){ //遍历数组,来显示所有字段的值
echo $key."=".$value."\t";
----------------------------
用
while($r=mysql_fetch_field($query)){
echo $r->name." ";
}问题B
------------------
请你看看print_r($array)里面的元素都有哪些,不只是只有字段为键的.所以你的理解错了
while($array=mysql_fetch_array($query)){ //我理解为把一条记录放在一个数组中
$count=count($array); 同样的SQL语句,在mysql命令行里面显示有四个字段,是正确的
但是用上面的语句就变成八个字段了,每个被重复一次
count也显示是 8; 不知道是怎么会事,非常困惑
只要
foreach (mysql_fetch_array($query) as $value) {
echo $value;
}
或者
while (list ($key, $value) = mysql_fetch_row ($query)) {
echo $value
}
foreach($array as $key => $value){
echo $key."=".$value."\t";
因为mysql_fetch_array返回两组数据,一组以数字为索引,一组以字段名做为索引
如果只想返回以字段名为索引的使且mysql_fetch_assoc或mysql_fetch($query, MYSQL_ASSOC)
换成mysql_fetch_row()可以了
mysql_fetch_array的第二个参数表示以什么方式返回数组
分别为
MYSQL_ASSOC 以列名为键
MYSQL_NUM 以序数为键
MYSQL_BOTH 两者都有
默认为MYSQL_BOTH
因为你mysql_fetch_array($query),所以数组的项数是字段的两倍你
foreach($array as $key=>$value){ //遍历数组,来显示所有字段的值
echo "$key => $value\t";就清楚了