PHP MYSQL中,如何获取未知列数的数据集?

while($row=mysql_fetch_array($result)){echo"<tr>";$i=0;$length=count($row);while($i<$... while($row = mysql_fetch_array($result))
{
echo "<tr>";
$i=0;
$length=count($row);
while($i < $length)
{
echo "<td>" . $row[$i] . "</td>";
$i++;
}
echo "</tr>";
}
echo "</table>";

//上面这样做会出现一个问题:每次$row长度都是其数据表列数的两倍。
//例如一个表中只有两列:姓名与年龄,结果$row长度却显示为4。
//请问这是怎么回事?该如何正确显示位置列数的$row呢?
展开
 我来答
jiangxibaiyi
2012-07-01 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14412

向TA提问 私信TA
展开全部
$row = mysql_fetch_array($result);

$i=0;
foratch($row as $val){

echo $val;

$i++;
}
追问
这种方法并不行。主要问题在于mysql_fetch_array函数返回的数组比mysql_fetch_row多一倍空值。为什么会这样?
追答
mysql_fetch_array
是返回数值数组和键名数组,同时的!
多一倍是正常的

比如有有一个字段名是:name,值是123
那么这个函数返回的数组就是:

Array{
[0] =123
[name] =123
}

看出来了吧,其实键名0和name是一回事,但返回的数组个数就是2个

要解决这个问题,就不要用
mysql_fetch_array

换成:
mysql_fetch_assoc()

附注:
php mysql函数:
mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。

mysql_fetch_assoc() 从结果集中取得一行作为关联数组。

我是不是很罗嗦啊?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式