2010-11-22 3 views
1

У меня есть база данных с строками, содержащими идентификатор и значение.Сортировка значений php mysql

Я произвольно вставляю эти значения между цифрами 1 и 100, когда я вставляю записи, поэтому идентификатор имеет случайное значение. Я использую цикл 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, хорошая точка. – shamittomar

+0

Я скорее хотел: не извлекать первую строку, а просто инициализировать '$ previousRow ['ID']' с некоторым значением. – Gumbo

Смежные вопросы