But now I've been thrown a wrench in the form of double row display.
my client wants...
a b c d e f ...
.. I need to create...
<tr> <td>row_1/feild_A</td> <td>row_1/feild_B</td> </tr> <tr> <td>row_2/feild_A</td> <td>row_2/feild_B</td> </tr> ...
And using the method of WHILE() doesn't cut it.
Can some one enlighten me what syntax can I use to hit 2 rows at a time?
Use "for".
You'll need to know the number of rows returned by your query. Using MySQL, I find that out using mysql_num_rows($query). You'll need to adapt this for your database.
So I would do it this way (probably not the most elegant, but it works):
$your_query = mysql_query("select your data from your table",$db); // Run the query
$row_count = mysql_num_rows($your_query); // Count rows returned
$table_row_index = 1; // We'll use this to count your table rows
echo "<tr>\r";
for ($i=0; $i<$row_count; $i++) { // Start with $i = 0, do while $i < number of rows, and increment $i with each loop
$your_row = mysql_fetch_array($your_query);
$field = $your_row['field'];
echo "<td>Row_$table_row_index/$field</td>\r"; // This is all stuff you've done
// so far we've just returned values from your query and written them to a table cell
// Here's the trick: if $i is even, we're on the first cell of a row. If $i is odd,
// we're on the second cell. We determine this with fmod($i/2); if the remainder
// (the result) is 0, $i is even, if it's 1, $i is odd.
if (fmod($i/2) != 1)) { // if $i is odd, we need to end this row and start another.
echo "</tr>\r<tr>\r";
$table_row_index++; // Increment your row numbering.
}
}
echo "</tr>\r";
Sorry about the weird comment wraps. I hope this makes sense.
pjm
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php