Thread: formatting output: grouping results with identical fields

formatting output: grouping results with identical fields

From
Molly Gibson
Date:
Sorry if this posts twice, I am having a horrible time
with the yahoo interface.

Hi list,
Textile geek-grrl here--I recently created a postgres
database to keep my fabric, pattern, & project
inventory.  (Do I win a prize for 'weirdest thing for
which someone has used postgres'?)  I am at the point
where I would like to refine the user interface, even
though I'm the only one who will ever use it.

Currently I have this query:
SELECT pattern_category, pattern_manufacturer,
pattern_number, pattern_desc
FROM patterns
ORDER BY pattern_category, pattern_manufacturer,
pattern_number;

which I have output into a plain ol' table like so
(code snippet only, I know it doesn't produce valid
html)
while ($i < $num) {
    $row = pg_fetch_object($pattern_info,$i);
    print ("<TD>$row->pattern_category</TD>
<TD>$row->pattern_manufacturer</TD>
<TD>$row->pattern_number</TD>
<TD>$row->pattern_desc</TD>
</TR>\n");
    $i++;
}

This is great for my purposes, but I'd like to clean
up the table a bit more and have the category only
print once each time it occurs, and the manufacturer
only print once in each category.

Here is what I came up with:
while ($i < $num) {
    $row = pg_fetch_object($pattern_info,$i);
    if ($row->pattern_category != $newcategory) {
    //we have a new category heading
    $newcategory = $row->pattern_category;
    print ("<TR><TD>$newcategory</TD></TR>\n");
    }
    if ($row->pattern_manufacturer !=
$newmanufacturer) {
    //we have a new manufacturer sub-heading
    $newmanufacturer = $row->pattern_manufacturer;
    print ("<TR><TD>$newmanufacturer</TD></TR>\n");
    }
    //print the rest of the stuff
    print
("<TD>$row->pattern_number</TD><TD>$row->pattern_desc</TD></TR>\n");
    $i++;
    }

This seems sorta kludgy and a bit limited--like I
can't just swap out a different field to sort on.  Is
there a simpler way to achieve this?

I've been poking around php.net and I didn't find
anything--but I can't be the only one who wants to do
this.  Could somebody give me some search tips so I
can figure this out?

Thanks!
mol

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com