On Fri, 2008-09-26 at 14:41 -0400, Robert Cummings wrote: > On Fri, 2008-09-26 at 21:23 +0300, Thodoris wrote: > > > On Fri, 2008-09-26 at 13:50 -0400, admin@xxxxxxxxxxxxxxxxxxx wrote: > > > > > >> Might I suggest you count the fields and divide it by the cols you want to display? > > >> Example > > >> $forest = mysql_query("SELECT * FROM your_table"); > > >> $gump = mysql_num_fields($forest); > > >> > > >> > > > > First of all the problem is with the rows not the columns. The problem > > is that I want to divide the rows into equal (or anything close to > > that) chunks and put every chunk in a separate table. > > > > There I said it :-) . > > > > >> Because I know my table contains 15 rows I can do this. > > >> $tulip = floor($gump /5); > > >> > > > > > > > > > > You can count the rows (not the cols) in the result set but you can't > > base your algorithm on that only. > > > > The problem is that if for e.g. you have 91 rows and you want to divide > > it into 3 you will have three chunks of 30 like this: > > > > 30, 30, 31 > > > > > You have a bug if you have 16 rows. > > > > > > > In my case I really don't care in what table the extra row goes. > > The solution is pretty easy, I just don't have time right now to write > it for you. Either way, I would approach the problem inverseley to your > current solution. Instead of traversing the rows and performing internal > calculations, I'd calculate the tables and rows needed and then traverse > that information and in the innermost loop traverse the result set using > the next() function. <?php $cells = array( 'First', 'Second' ); $items = array( array( 'one', 'two' ), array( 'one', 'two' ), array( 'one', 'two' ), array( 'one', 'two' ), array( 'one', 'two' ), arr $numTables = 3; $items = array_chunk( $items, ceil( count( $items ) / $numTables ) ); $html = ''; foreach( $items as $tableItems ) { if( $tableItems ) { $html .= '<table><tr>'; foreach( $cells as $cell ) { $html .= '<td>'.$cell.'</td>'; } $html .= '</tr>'; foreach( $tableItems as $rowItems ) { $html .= '<tr>'; foreach( $rowItems as $item ) { $html .= '<td>'.$item.'</td>'; } $html .= '</tr>'; } $html .= '</table>'; } } ?> I changed my mind on how I wanted to do it. Either way... simple enough :) Adapt to fit your own scenario. Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php