这是我的代码行
while($row = mysql_fetch_array($result))
我想知道行中有多少列。我尝试了count($row)
,但这又返回了我认为整个$结果的单元格数。
即实际上有7列,2行和count($row)
返回14.我想要一个返回7的函数。
你能看到我出错的地方。
提前致谢。
编辑 - 找到答案
将MYSQL_NUM
作为第二个参数传递给mysql_fetch_array
无论如何,谢谢大家的回答。
答案 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个条目的行。