<table width="76%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td>$record1Line1<br>$record1$Line2<br>
<input type="checkbox" name="$record1checkbox" value="checkbox"></td>
<td>$record2Line1<br>$record2$Line2<br>
<input type="checkbox" name="$record2checkbox" value="checkbox"></td>
<td>$record3Line1<br>$record3$Line2<br>
<input type="checkbox" name="$record3checkbox" value="checkbox"></td>
<td>$record4Line1<br>$record4$Line2<br>
<input type="checkbox" name="$record3checkbox" value="checkbox"></td>
<td>$record5Line1<br>$record5$Line2<br>
<input type="checkbox" name="$record5checkbox" value="checkbox"></td>
</tr>
</table>
I want to pull about 200 records at a time from the db and display as
described above. How can I tell php to take five records from my result
set and display above, then loop through the result set until I'm done?
Thanks much for any guidance you can offer.
Ed
Set $numRows to how many records you have retrieved total...
for($i=0;$i<$numRows;$i=$i+5){
echo '<tr>';
for($j=$i;$j<($i+5);$j++){
$line1='record'.$j.'Line1';
$line2='record'.$j.'Line2';
$checkbox='record'.$j.'checkbox';
echo '<td>',${$line1},'<br>',${$line2},'<br>',
${$checkbox},'</td>';
}
echo '</tr>',"\n";
}
Try it - maybe I'm just too tired, but it looks ok from here (not tested
of course)... That is assuming that you actually have the variable names
set up as you had indicated in that block of HTML...
I would be more inclined to have the SQL return 3 columns per row so I
could just use something like: $row[0], $row[1], $row[2] for the
variables...
--
Justin Koivisto, ZCE - jus...@koivi.com
http://koivi.com
if(($count_td == "1")OR($count_td == "")){ echo "<tr>"; }
echo "<td>$content</td>";
if($count_td == "5"){ echo "</tr>"; $count_td = "1"; }else{
$count_td++; }
This will stretch the last column to fill the missing space.
<?php
require_once ("HTML/Table.php");
$sample_data = array ("john", "fred", "bob", "willy", "angie",
"frank", "betty", "george", "wilma", "dexter",
"jack", "ziggy", "flo", "shrek", "gork", "nobody");
function build(&$input, $cols = 5) {
$t = new HTML_Table(array("border" => 1));
$t->setAutoGrow(true);
$array_size = count($input);
$line = 0;
for ($offset = 0; $offset < $array_size; $offset = $offset + $cols) {
$row = array_splice($input, 0, $cols);
$row_size = count($row);
$t->addRow($row);
if ($row_size < 5) {
$t->setCellAttributes($line, $row_size - 1,
array("colspan" => 5 - $row_size +1));
}
$line++;
}
return $t;
}
$res =& build($sample_data);
$res->display();
?>
You can also remove the lines that handle the "stretch", and just add
the result of the splice. The non-existant cells will be handled by
setAutoGrow then.
/m