如何从mysql_fetch_array()获取正确的列数?

时间:2010-08-27 21:23:07

标签: php mysql arrays

这是我的代码行

while($row = mysql_fetch_array($result))

我想知道行中有多少列。我尝试了count($row),但这又返回了我认为整个$结果的单元格数。

即实际上有7列,2行和count($row)返回14.我想要一个返回7的函数。

你能看到我出错的地方。

提前致谢。

编辑 - 找到答案

MYSQL_NUM作为第二个参数传递给mysql_fetch_array 无论如何,谢谢大家的回答。

3 个答案:

答案 0 :(得分:3)

PHP有一个返回列数的函数:

mysql_num_fields($result)

正如其他答案所说,你的计数加倍,因为mysql_fetch_array()会返回两个关联键(按列名)和数字键。我会使用上面的函数,不管我用什么来获取行。

答案 1 :(得分:2)

mysql_fetch_array()将行作为数字索引和关联键的组合数组返回。这就是为什么你得到14而不是7。

使用mysql_fetch_row()代替下一行作为数字索引。或mysql_fetch_assoc()使用关联键获取它。更改为任何一个将导致count($row)返回7.

修改我原来说mysql_fetch_array()会返回整个结果。我纠正了这个。问题仍然存在:使用我提到的其他功能之一将解决问题。

答案 2 :(得分:2)

当您使用mysql_fetch_array时,每一行的列都会被索引两次,一次按列编号,一次按列名称。因此count($row)将是列数的两倍。

如果您只想要数字索引,请使用mysql_fetch_row;如果需要名称索引,请使用mysql_fetch_assoc。这些函数都将返回包含7个条目的行。