I looked here: Array into a table with 5 cells in each row
but I cannot adapt my code..
I need to display PHP array results in a table. The table needs to have 3
Try this
echo "<table><tr>";
$num=mysql_numrows($result1);
$i=0;
while ($i < $num)
{
$aaa=mysql_result ($result1,$i,"aaa");
$bbb=mysql_result ($result1,$i,"bbb");
if($i %3 ==0)
{
echo"</tr><tr><td> $aaa $bbb </td>";
}
else
{
echo"<td> $aaa $bbb </td>";
}
$i++;
}
echo "</tr></table>";
use the mod operator % to check for the third element. e.g.
if($i%3 == 0) {
// this is the third element, start a new tr here
}
To achieve something like this:
You can easily make things configureable by wrapping it into an iterator
of it's own that provides rows and columns:
/**
* function to fetch one row from database
*/
function fetch_row($resultSet = NULL) {
static $result;
static $i = 0;
if ($resultSet) {
$result = $resultSet;
return;
}
return mysql_fetch_assoc($result);
}
fetch_row($result1); // initialize fetch function
$it = new FetchIterator('fetch_row');
$table = new TableIterator($it, 5);
if ($table->valid()) : ?>
<table border="1">
<?php foreach ($table as $row => $columns) : ?>
<tr class="<?php echo $row % 2 ? 'odd' : 'even'; ?>">
<?php foreach ($columns as $index => $column) : ?>
<td>
<?php if ($column) echo $column['aaa'], ' ', $column['bbb']; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
<?php endif;
Some Demo and see as well Some PHP Iterator Fun.