为了账号安全,请及时绑定邮箱和手机立即绑定

如何两次通过mysql结果?

/ 猿问

如何两次通过mysql结果?

吃鸡游戏 2019-10-18 11:16:08

无论出于什么原因,我都需要两次通过mysql结果集。有办法吗?我不想运行两次查询,也不需要重写脚本,以便它将行存储在某处,然后在以后重用。



查看完整描述

3 回答

?
芜湖不芜

这是您可以执行的操作:


$result = mysql_query(/* Your query */);

while($row = mysql_fetch_assoc($result)){

 // do whatever here...

}


// set the pointer back to the beginning

mysql_data_seek($result, 0);

while($row = mysql_fetch_assoc($result)){

 // do whatever here...

}

但是,我不得不说,这似乎不是解决此问题的正确方法。为什么不在第一个循环中进行处理?


查看完整回答
反对 回复 2019-10-18
?
郎朗坤

尝试mysql_data_seek()是否满足您的需求。


mysql_data_seek()移动与指定结果标识符关联的MySQL结果的内部行指针,以指向指定的行号。对MySQL fetch函数的下一次调用(例如mysql_fetch_assoc())将返回该行。


row_number从0开始。row_number应该是从0到mysql_num_rows()-1的范围内的值。但是,如果结果集为空(mysql_num_rows()== 0),则寻找0将会失败,并显示E_WARNING和mysql_data_seek ()将返回FALSE


查看完整回答
反对 回复 2019-10-18
?
凤凰求蛊

数据查找的替代方法是将值存储到数组中:


$arrayVals = array();

$result = mysql_query(/* Your query */);

while($row = mysql_fetch_assoc($result)){

    $arrayVals[] = $row;

}


// Now loop over the array twice instead


$len = count($arrayVals);

for($x = 0; $x < $len; $x++) {

    $row = $arrayVals[$x];


    // Do something here    

}


$len = count($arrayVals);

for($x = 0; $x < $len; $x++) {

    $row = $arrayVals[$x];


    // Do something else here   

}


查看完整回答
反对 回复 2019-10-18

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信