RE: [PHP] trouble formatting output

From: Date: Sun, 11 May 2003 23:13:37 +0000
Subject: RE: [PHP] trouble formatting output
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-147234@lists.php.net to get a copy of this message
Nice little problem, just break it down into logical steps. > From: Brian V Bonini wrote > > DB data is: > id month company title name part > > I'm grouping and ordering the data in my SQL query and basically only > want to display the month, company, and title ONLY when they change. > > So for instance I may have: > > 2002-04-01 company1 title1 name1 part1 > 2002-04-01 company1 title1 name2 part2 > 2002-04-01 company1 title1 name3 part3 > 2002-04-01 company1 title1 name4 part4 > 2002-04-01 company1 title2 name1 part1 > 2002-04-01 company1 title2 name2 part2 > 2002-05-01 company2 title3 name1 part1 > 2002-05-01 company2 title3 name2 part2 > 2002-05-01 company2 title3 name3 part3 > 2002-05-01 company2 title3 name4 part4 > > and want to format like: > 1) get sql select to order by month, title, name. 2) then read all results row by row by begin each step when the parameters value changes... My test code... <?php $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title1", 'name'=>"name1", 'part'=>"part1"); $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title1", 'name'=>"name2", 'part'=>"part2"); $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title1", 'name'=>"name3", 'part'=>"part3"); $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title1", 'name'=>"name4", 'part'=>"part4"); $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title2", 'name'=>"name1", 'part'=>"part1"); $array[] = array('month'=>"2002-04-01", 'company'=>"company1", 'title'=>"title2", 'name'=>"name2", 'part'=>"part2"); $array[] = array('month'=>"2002-05-01", 'company'=>"company2", 'title'=>"title3", 'name'=>"name1", 'part'=>"part1"); $array[] = array('month'=>"2002-05-01", 'company'=>"company2", 'title'=>"title3", 'name'=>"name2", 'part'=>"part2"); $array[] = array('month'=>"2002-05-01", 'company'=>"company2", 'title'=>"title3", 'name'=>"name3", 'part'=>"part3"); $array[] = array('month'=>"2002-05-01", 'company'=>"company2", 'title'=>"title3", 'name'=>"name4", 'part'=>"part4"); print "<pre>"; $line_break = "\r\n"; //while ( $row = mysql_fetch_array($result) ) { foreach ( $array as $row ) { // ACHTUNG! uncomment/comment line above as appropriate if ($row['month'] != $last['month']) { print $row['month'].$line_break; } if ($row['company'] != $last['company']) { print " ".$row['company'].$line_break; } if ($row['title'] != $last['title']) { print " -".$row['title'].$line_break; } print " ".$row['name']." ".$row['part'].$line_break; // store this row as last for next time ;) $last = $row; } ?> [snip] Output is ... 2002-04-01 company1 -title1 name1 part1 name2 part2 name3 part3 name4 part4 -title2 name1 part1 name2 part2 2002-05-01 company2 -title3 name1 part1 name2 part2 name3 part3 name4 part4 Rgds, Ben "Sewer rat may taste like pumpkin pie...."

« previous php.general (#147234) next »