This is a discussion on Printing mysql_fetch_array results in multicolumn table within the MySQL Database forums, part of the Database Forums category; I'm not sure if this qualifies as a mysql or a php question so I'm asking in both ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
I'm not sure if this qualifies as a mysql or a php question so I'm
asking in both groups. I am pulling the results of a mysql query from my database and want to print the results into a two column table. I know how to get the results into a single column table just fine using: while($row = mysql_fetch_array($result)) { print "<table border=2><tr><th>" . $row[name]; print "<tr><td>"; print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; print "</td></tr>"; print "</table>\n"; print "<br><br>"; } and it works fine. But my efforts to get the reults into a two column setup have become frustrating. My latest attempt was: while($row = mysql_fetch_array($result)) { print "<table border=2 width='90%'>"; print "<tr>"; print "<td>"; print "<b>" . $row[name] . "</b><br>"; print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; print "</td>"; print "<td>"; print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; print "</td>"; print "</tr>"; print "</table>\n"; print "<br><br>"; } This puts the same data from a single result in both <td> fields though. I want it to put data from the first result in the left <td> and data from the second result in the right side and continue on from there until the end. What am I overlooking on this to make it work as I need it to? |
|
|||
|
JackM wrote:
> I'm not sure if this qualifies as a mysql or a php question so I'm > asking in both groups. > > I am pulling the results of a mysql query from my database and want to > print the results into a two column table. I know how to get the results > into a single column table just fine using: > > while($row = mysql_fetch_array($result)) { > print "<table border=2><tr><th>" . $row[name]; > print "<tr><td>"; > print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; > print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; > print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; > print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; > print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; > print "</td></tr>"; > print "</table>\n"; > print "<br><br>"; > } > > and it works fine. But my efforts to get the reults into a two column > setup have become frustrating. My latest attempt was: > > while($row = mysql_fetch_array($result)) { > print "<table border=2 width='90%'>"; > print "<tr>"; > print "<td>"; > print "<b>" . $row[name] . "</b><br>"; > print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; > print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; > print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; > print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; > print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; > print "</td>"; > print "<td>"; > print mysql_field_name($result, 0) . ": " . $row[ID]."<br>"; > print mysql_field_name($result, 1) . ": " . $row[name]."<br>"; > print mysql_field_name($result, 2) . ": " . $row[address]."<br>"; > print mysql_field_name($result, 3) . ": " . $row[city]."<br>"; > print mysql_field_name($result, 4) . ": " . $row[telephone]."<br>"; > print "</td>"; > print "</tr>"; > print "</table>\n"; > print "<br><br>"; > } > > This puts the same data from a single result in both <td> fields though. > I want it to put data from the first result in the left <td> and data > from the second result in the right side and continue on from there > until the end. > > What am I overlooking on this to make it work as I need it to? Not completely sure what you want exactly, but there are some weird constructs in both cases. You create a complete table for each db row it seems. The table tages should be outside the loop I suppose. It is no surprise in the second example you get the same data in both columns, since that is what you ordered. If what you aim for is a table looking like this: ID <ID value for row x> name <name value for row x> [etc] ID <ID value for row y> name <name value for row y> [etc] then replace all the <td> </td> contents of the first column with appropriate contents. Sh. -- Sigh. I like to think it's just the Linux people who want to be on the "leading edge" so bad they walk right off the precipice. (Craig E. Groeschel) |