我有一个数据库,其中包含一个ID和一个值的行。通过值排序php mysql
随着我插入记录,我随机在数字1和100之间插入这些值,因此ID有一个随机值。我使用while循环遍历记录并将其打印到屏幕上。但是,我想要的方式是,如果while循环中的行的当前值小于下一个值,那么跳出循环。基本上我所要求的是如何在while循环中处理当前数据库时引用数据库的下一个记录,只需检查数据库中的值。
我有一个数据库,其中包含一个ID和一个值的行。通过值排序php mysql
随着我插入记录,我随机在数字1和100之间插入这些值,因此ID有一个随机值。我使用while循环遍历记录并将其打印到屏幕上。但是,我想要的方式是,如果while循环中的行的当前值小于下一个值,那么跳出循环。基本上我所要求的是如何在while循环中处理当前数据库时引用数据库的下一个记录,只需检查数据库中的值。
$lastRecord = Array();
foreach($records as $thisRecord){
if($lastRecord['value'] < $thisRecord['value']){
// do what you need to do here
}
$lastRecord = $thisRecord;
}
这样,你永远保持存储
于前值轮做它的其他方式。基于前一个元素(您可以简单地存储在某个地方),根据下一个元素,而不是根据下一个元素分解,只需在下一个元素上检查。我猜这个循环实际上遍历了元素并做了一些事情;你可以在做任何事情之前检查前面的/当前的元素第一个,没有人会注意到你事实上加载了下一个元素。
试试这个:
$previousRow = mysql_fetch_assoc($result);
$previousRow['ID'] = -1;
while($currentRow = mysql_fetch_assoc($result))
{
if($currentRow['ID'] > $previousRow['ID'])
break;
echo $previousRow['Value'];
$previousRow = $currentRow;
}
我宁愿用'0'或'-1'初始化'$ previousRow ['ID']'。 – Gumbo 2010-11-22 11:44:14
@Gumbo,好点。 – shamittomar 2010-11-22 12:01:13
我的意思是:不要获取第一行,而只是初始化具有某个值的'$ previousRow ['ID']'。 – Gumbo 2010-11-22 12:58:06
究竟什么是你的问题? – 2010-11-22 11:37:03