无论出于何种原因,我需要两次通过mysql结果集.有办法吗?我不想两次运行查询,我不想重写脚本,以便将行存储在某处,然后再重新使用它们.
She*_*hef 96
这是你如何做到的:
$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...
}
Run Code Online (Sandbox Code Playgroud)
但是,我不得不说,这似乎不是处理这个问题的正确方法.为什么不在第一个循环中进行处理?
pha*_*t0m 11
尝试mysql_data_seek()是否满足您的需求.
mysql_data_seek()将与指定结果标识符关联的MySQL结果的内部行指针移动到指向指定的行号.下一次调用MySQL获取函数(如mysql_fetch_assoc())将返回该行.
row_number从0开始.row_number应该是0到mysql_num_rows() - 1范围内的值.但是如果结果集为空(mysql_num_rows()== 0),则搜索到0将失败,并带有E_WARNING和mysql_data_seek ()将返回FALSE
对于mysqli,您应该执行以下操作;
$result= $con->query($sql); // $con is the connection object
$result->data_seek(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46456 次 |
| 最近记录: |