hmmmm....
i'm not sure off the top of my head, but i think you'll have to specify exactly how many rows you want and let the columns work themselves out...is that OK? If not, your logic regarding the query is going to have to change so that you can make some decisions in your code about how many rows and columns you want.
what i mean i guess is that you have to pick either the number of rows OR the number of columns. and if you want to start filing out rows first and you don't know how many items you have total, you're going to have to pick a number of rows--unless you want to rip through your query results real quick and count them up.
...it's a bit trickier this way because tables are rendered left-to right in HTML....a multi dimensional array might do the trick.
<?
$num_rows = 2;
$row = 0;
while($line_suburb = mysql_fetch_array($sql_result_suburb, MYSQL_ASSOC)) {
$suburb = $line_suburb["suburb_name"];
$row++;
if ($row > $num_rows) {
$row = 1;
}
$output_rows[$row] .= "<td width=150 >$suburb</td>";
}
echo "<table>";
for($i=1; $i<=$num_rows; $i++) {
echo "<tr>" . $output_rows[$i] . "</tr>";
}
echo "</table>";
?>
hope that might help.