发现PHP查询MYSQL,遍历结果,会出现2倍数据(数据库1行数据2列,遍历输出4列)

2025-04-05 03:05:20
推荐回答(4个)
回答1:

问题出在mysql_fetch_array这一步,此方法的第二个参数表示你要获取的数组的类型
MYSQL_ASSOC 关联数组,就是键名是id,name的
MYSQL_NUM 索引数组,键名是数字的
MYSQL_BOTH 以上两种都有
不给第二个参数的话,默认是MYSQL_BOTH,所以就出现了你上面的结果

回答2:

mysqli_fetch_all($res)解决

回答3:

是你用的函数问题换成mysql_fetch_assoc试一下! mysql_fetch_array是已关联索引数组取出!换了百分之百行

回答4:

问题问得挺好,我也遇到了同样的问题。但我是双层循环订单信息(订单表和订单详情表有关联),然后最外层循环mysql语句套用了select from 订单表 join 订单详情表 on语句,出现了双倍的数据。
原来$ssq="SELECT * FROM orders AS o JOIN orderdetails as ods ON o.order_number=ods.order_number Where o.userid=$u";
改为$ssq="SELECT * FROM orders AS o Where o.userid=$u";
while ($row = mysqli_fetch_assoc($result)){
?>


你的不是双循环,奇怪了。
反正去掉了join on,数据库是一条记录,页面显示也是一条记录了(原来是显示两条记录),你将多余的东西用引号注释掉,排查排查,或者换一种思路。