我正在使用Zend fetch
方法从数据库中获取大量记录以创建报告。因为{fn}与使用它的fetch相比是昂贵的。如果它是我需要的最后一行添加一些additinoal逻辑。所以我的问题是有没有办法检查while循环中是否存在下一条记录。我正在使用它,如下所示
fetchAll
有没有办法检查当前的记录是否是最后一条记录,或者是否存在任何其他记录。我知道通过计算记录并在循环内增加一个计数器来做到这一点。但我不需要它。任何解决方案。?
答案 0 :(得分:1)
“有没有办法检查下一条记录是否存在”你的while循环上的条件恰好就是这样。如果不存在要获取的行,则循环将不再执行。
这样想:
while($arrResult = $objAchQry->fetch()) {
//Do something
}
// Now I'm just after the last record
/*
do something
*/
如果确实需要在之前执行某些操作处理完最后一行,您可以将代码修改为
$total_records = // get total no of rows
$counter = 0;
while($arrResult = $objAchQry->current()) {
//Do something
$counter ++;
//I need to do something here if its the last record like
if( ! $bojAchQry->next()) {
// The row currently being processed is the last one.
} else {
break;
}
}
答案 1 :(得分:1)
单向 - 您可以使用计数器进行跟踪,
$total_records = // get total no of rows
$counter = 0;
while($arrResult = $objAchQry->fetch()) {
//Do something
$counter ++;
//I need to do something here if its the last record like
if($counter == $total_records ) // this iteration will be the last one.
//do something
}