2010-11-22 77 views
1

我有一个数据库,其中包含一个ID和一个值的行。通过值排序php mysql

随着我插入记录,我随机在数字1和100之间插入这些值,因此ID有一个随机值。我使用while循环遍历记录并将其打印到屏幕上。但是,我想要的方式是,如果while循环中的行的当前值小于下一个值,那么跳出循环。基本上我所要求的是如何在while循环中处理当前数据库时引用数据库的下一个记录,只需检查数据库中的值。

+0

究竟什么是你的问题? – 2010-11-22 11:37:03

回答

0
$lastRecord = Array(); 
foreach($records as $thisRecord){ 
    if($lastRecord['value'] < $thisRecord['value']){ 
     // do what you need to do here 
    } 
    $lastRecord = $thisRecord; 
} 

这样,你永远保持存储

0

于前值轮做它的其他方式。基于前一个元素(您可以简单地存储在某个地方),根据下一个元素,而不是根据下一个元素分解,只需在下一个元素上检查。我猜这个循环实际上遍历了元素并做了一些事情;你可以在做任何事情之前检查前面的/当前的元素第一个,没有人会注意到你事实上加载了下一个元素。

3

试试这个:

$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; 
} 
+2

我宁愿用'0'或'-1'初始化'$ previousRow ['ID']'。 – Gumbo 2010-11-22 11:44:14

+0

@Gumbo,好点。 – shamittomar 2010-11-22 12:01:13

+0

我的意思是:不要获取第一行,而只是初始化具有某个值的'$ previousRow ['ID']'。 – Gumbo 2010-11-22 12:58:06