如何在mysql结果数据集中获取下一条记录


How to get next record inside the mysql result dataset?

Mysql为我们提供了一个数据集当我们在Mysql中运行选择查询时,我们使用while或for循环语句来从该数据集中获取每个记录。我想知道,当我们在没有到达循环顶部的情况下获得记录时,是否有任何函数可以在这个数据集中获得下一个记录?类似于:

$result = mysql_query("SELECT * FROM table1");
while ($row = mysql_fetch_array($result)) {
 $currentId = $row['id'];
 $nextId = mysql_fetch_next()['id'];
 ......
}

我会添加另一个迭代,将您的资源转换为数组,并包括下一个ID(假设它不一定是上一个ID+1,在这种情况下这一切都毫无意义):

$recordset = array(); $i = 0;
while ($row = mysql_fetch_assoc($result))
{
    $recordset[$i] = $row;
    if ($i > 0) { $recordset[$i-1]['nextid'] = $row['id']; }
    $i++;
}

然后,您可以将$recordset用于任何目的。

$result = mysql_query("SELECT MAX(id) FROM `table1` GROUP BY id");
if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_array($result)){
        $next = $row['MAX(id)'] + 1;
    }
}