3

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.
MacMac
  • 34,294
  • 55
  • 151
  • 222

2 Answers2

3

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.

Decent Dabbler
  • 22,532
  • 8
  • 74
  • 106
  • Ah.. it's kind of not working, but it does 'group' the records but it just gives a label each record not label per group. – MacMac Apr 04 '10 at 22:06
  • Are you sure the resultset is ordered by priority? Can you edit your question and show the SQL query in there? – Decent Dabbler Apr 04 '10 at 22:09
  • Oops, my bad, did it incorrectly, but your solution still works :) no problem at all – MacMac Apr 04 '10 at 22:18
0

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

SELECT *
FROM items
ORDER BY priority DESC
newtover
  • 31,286
  • 11
  • 84
  • 89
  • Not the query... I've already got it ordered by it, i'm asking about the PHP that seperates records. - edited the post btw – MacMac Apr 04 '10 at 21:51