[PHP-DB] Re: FW: PHP Question on MySQL grouping

2002-03-05 Thread Keiran Wynyard

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
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




RE: [PHP-DB] Re: FW: PHP Question on MySQL grouping

2002-03-05 Thread Shrock, Court

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




[PHP-DB] Re: FW: PHP Question on MySQL grouping

2002-03-01 Thread Matthew Crouch

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://wwwphpnet/)
To unsubscribe, visit: http://wwwphpnet/unsubphp