Thanks, Gürhan, but I think I needed to explain things better.  As is generally
a good idea, the categories are referenced in the product table by ID, not name.
Additionally, this is something along the lines of what I already had.  I was
trying to use only one query and make PHP do the remaining work.

Here's the code I'm currently using, which I should have posted in the first
place.

<?
$query = "SELECT * FROM categories";
$result = mysql_query( $query );
$rows = mysql_num_rows( $result );

print "<ul>\n";

while ( $cats = mysql_fetch_array( $result ) )
{
    print "<li>" .$cats["cat_name"] ."</li>";

    $queryB = "SELECT prod_name FROM products
        WHERE prod_cat=" .$cats["cat_id"];
    $resultB = mysql_query( $queryB );
    print "<ul>";

    while ( $items = mysql_fetch_array( $resultB ) )
    {
        print "<li>" .$items["prod_name"] ."</li>";
    }

 print "</ul>";
}

print "</ul>";
?>

The more I think about it, the more it seems like I'll just have to use two
queries.  I just didn't want to do so bcs the second query will run at least
four times and it seemed inefficient.

Edward Dudlik
Becoming Digital
www.becomingdigital.com


----- Original Message -----
From: "Gürhan Özen" <[EMAIL PROTECTED]>
To: "Becoming Digital" <[EMAIL PROTECTED]>
Cc: "PHP-DB" <[EMAIL PROTECTED]>
Sent: Friday, 06 June, 2003 23:07
Subject: Re: [PHP-DB] Displaying groups from SELECT


On Fri, 2003-06-06 at 21:49, Becoming Digital wrote:
> I'm wearing the stupid hat today, so please pardon this.  I know I must be
> overlooking something.
>
> I have a small catalogue with two tables (categories, products) from which I'm
> trying to display items.  I'm trying to print the contents as below without
> using two queries, but I'm having a difficult time with it.
>
>     cat1
>         prod1
>         prod2
>     cat2
>         prod1
>         prod2
>     etc.
>
> I think this came up fairly recently, but I cannot for the life of me figure
out
> what search terms would answer this question.  As you can see from the message
> subject, I don't even know how to refer to my problem.  Thanks a lot for all
> your help.
>
> Edward Dudlik
> Becoming Digital
> www.becomingdigital.com
>

  Hi Ed,
 The magic word is "DISTINCT" :)

 $query="SELECT DISTINCT(category) AS cat_name FROM table_name";
 $result=mysql_query($query);
 print "<ul>";
 while ($row=mysql_fetch_array($result)) {
    print "<li>".($row["cat_name"])."";
    $query1="SELECT productname FROM tablename WHERE
category=".($row["cat_name"])."";
    $result1=mysql_query($query1);
    while ($row1=mysql_fetch_array($result1)) {
       print "<li>".($row1["productname"])."";
    }
    print "</ul>";
}

print "</ul>";


I hope this helps..





-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to