开发者

Grouping records from while loop | PHP

开发者 https://www.devze.com 2022-12-25 20:58 出处:网络
I\'m trying to group down records by their priority levels, e.g. --- Priority: High --- Records... --- Priority: Medium ---

I'm trying to group down records by their priority levels, e.g.

--- Priority: High ---

Records...

--- Priority: Medium ---

Records...

开发者_运维技巧

--- Priority: Low ---

Records...

Something like that, how do I do that in PHP? The while loop orders records by the priority column which has int value (high = 3, medium = 2, low = 1). e.g. WHERE priority = '1'

The label: "Priority: [priority level]" has to be set above the grouped records regarding their level

EDIT:

<?php

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

?>

Like that piece of code - the

tags is the label which seperates records regarding their priority level.


If you're sure the results are ordered by priority then something as trivial as this:

$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'];
}

In other words, you keep track of the current priority level in the $priority variable. Then test whether the priority has changed in the if condition. If so, echo the priority and set the current priority to the priority found in the current row.

Mind you, this only works as expected (truly grouped once) if the rows are ordered by priority. In other words, when different priorities are not scattered across the resultset.


If you use mysql why would not you use DB ordering capabilities?

SELECT *
FROM items
ORDER BY priority DESC
0

精彩评论

暂无评论...
验证码 换一张
取 消