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