How about changing:

if ($a_row[dishtype] != $loop)

to

// the $loop variable must be unset before the loop starts
//   though, so put a unset($loop) right before your while
if ($a_row[dishtype] != $loop && isset($loop))

Court

> -----Original Message-----
> From: Keiran Wynyard [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, March 05, 2002 3:46 AM
> To: [EMAIL PROTECTED]
> Subject: [PHP-DB] Re: FW: PHP Question on MySQL grouping
> 
> 
> Thanks to both Aron and Mr Crouch for their help...
> 
> Aron suggested three separate queries, which was a thought I 
> had originally,
> but as I was about to implement that idea, with the extra 
> code that required
> Mr Crouch came along with his 'test' variable idea. The code 
> I used is at
> the end of this post.
> 
> With the information supplied (and a little bug checking of 
> my own) I am
> able to say that I have succeeded in placing an <hr> above 
> the first entry
> of a 'dishtype' group, not exactly what I wanted, but light 
> years ahead of
> where I was. If anyone knows how to place it at the bottom 
> (or after) the
> LAST item of a group I would be most indebted.
> 
> Below is the reworked code that I used incorporating the 
> ideas that Matthew
> sent along, as a closing statement on my question:
> -------------------------
>  while ($a_row = mysql_fetch_array ($result) )
>    {
>     //strip slashes so input appears correctly
>                 $a_row[name] = stripslashes ($a_row[name]);
>                 $a_row[shorttext] = stripslashes($a_row[shorttext]);
> 
> if ($a_row[dishtype] != $loop)
>    {
>        echo "<hr size=\"1\" width=\"30%\" noshade>\n"; \\the 
> required <hr>
> tag
>        }
>     //here I placed more information about the dish
> $loop=$a_row[dishtype];
>    }
> --------------------------
> Thanks a lot guys
> 
> Keiran
> ----
> Matthew Crouch <[EMAIL PROTECTED]> wrote in message
> [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > Another way is to set a testing variable and then print an 
> <hr> if it
> > changes
> > (this off the top of my head, probably bugs in it but you 
> get the idea)
> >
> > while $myrow=mysql_fetch_row($result) {
> > if $myrow["dishtype"]<>$test {
> >     echo "<hr>";
> > //here you would print the rest of the info about the dish 
> from the row
> >     }
> > $test=$myrow["dishtype"];
> > }
> >
> > Keiran Wynyard wrote:
> >
> > > I need to loop through a grouped recordset adding a <hr> at the
> > > end of each group, how can groups in recordsets be identified in
> > > PHP for specific formatting.
> > >
> > >  SELECT name AS name, dishtype AS dishtype, price AS price
> > >  FROM dishes
> > >  WHERE used = 1
> > >  GROUP BY dishtype, name
> > >  ORDER BY dishtype, price DESC
> > >
> > > The use is in the display of a menu for a restaurant, where there
> > > is a table containing all the dishes on the menu in any given
> > > instance, but they musst be displayed in a specific order,
> > > grouped by type. In other words, all Starters come first,
> > > followed by Main courses, followed by Desserts. Between each type
> > > there needs to be a seperator, the horizontal line.
> > >
> > >  Thanks for you help
> > >
> > > Keiran
> >
> 
> 
> 
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to