Группировка записей из цикла while | PHP - PullRequest
3 голосов
/ 05 апреля 2010

Я пытаюсь сгруппировать записи по уровням приоритета, например,

--- Приоритет: Высокий ---

Запись ...

--- Приоритет: средний ---

Запись ...

--- Приоритет: Низкий ---

Запись ...

Что-то в этом роде, как мне это сделать в PHP? Цикл while упорядочивает записи по приоритетному столбцу со значением int (high = 3, medium = 2, low = 1). например ГДЕ приоритет = '1'

Метка: «Приоритет: [уровень приоритета]» должна быть установлена ​​над сгруппированными записями относительно их уровня

EDIT:

<?php

while($row = mysql_fetch_array($result))
{
    echo '<h1>Priority Level: ' . $row['priority'] . '</h1>';
    echo $row['name'];
}

?>

Как и в этом фрагменте кода, теги

- это метка, которая разделяет записи относительно их уровня приоритета.

Ответы [ 2 ]

3 голосов
/ 05 апреля 2010

Если вы уверены, что результаты упорядочены по приоритету, то что-то тривиальное, как это:

$priority = null;
while($row = mysql_fetch_array($result))
{
    if( $row['priority'] != $priority )
    {
        echo '<h1>Priority Level: ' . $row['priority'] . '</h1>';
        $priority = $row['priority'];
    }
    echo $row['name'];
}

Другими словами, вы отслеживаете текущий уровень приоритета в переменной $priority. Затем проверьте, изменился ли приоритет в условии if. Если это так, echo приоритет и установите текущий приоритет на приоритет, найденный в текущей строке.

Имейте в виду, это работает только как ожидалось (действительно сгруппировано один раз), если строки расположены в порядке приоритета. Другими словами, когда разные приоритеты не разбросаны по набору результатов.

0 голосов
/ 05 апреля 2010

Если вы используете MySQL, почему бы вам не использовать возможности упорядочивания БД?

SELECT *
FROM items
ORDER BY priority DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...