2010-11-22 21 views
1

IDと値を含む行を持つデータベースがあります。値を並べ替えるphp mysql

私はレコードを挿入するときにランダムに値1と100の間にこれらの値を挿入するので、IDはランダムな値を持ちます。 whileループを使ってレコードを調べ、それらを画面に出力します。しかし、whileループの行の現在の値が次の値よりも小さい場合は、ループから抜け出すことが望ましいです。基本的に私が求めているのは、データベースの次のレコードを参照する方法です。whileループでは、現在の値をチェックするだけです。

+0

を正確にあなたの質問は何? –

答えて

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

'$ previousRow ['ID']'を '0'または' -1'で初期化したいと思います。 – Gumbo

+0

@Gumbo、nice point。 – shamittomar

+0

私はむしろ意味:最初の行をフェッチしないで、 '$ previousRow ['ID']'をある値で初期化するだけです。 – Gumbo