Printing mysql_fetch_array results in multicolumn table

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • JackM

    #1

    Printing mysql_fetch_array results in multicolumn table

    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_arr ay($result)) {
    print "<table border=2><tr><t h>" . $row[name];
    print "<tr><td>";
    print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    print mysql_field_nam e($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_arr ay($result)) {
    print "<table border=2 width='90%'>";
    print "<tr>";
    print "<td>";
    print "<b>" . $row[name] . "</b><br>";
    print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    print mysql_field_nam e($result, 4) . ": " . $row[telephone]."<br>";
    print "</td>";
    print "<td>";
    print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    print mysql_field_nam e($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?
  • Schraalhans Keukenmeester

    #2
    Re: Printing mysql_fetch_arr ay results in multicolumn table

    JackM wrote:[color=blue]
    > 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_arr ay($result)) {
    > print "<table border=2><tr><t h>" . $row[name];
    > print "<tr><td>";
    > print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    > print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    > print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    > print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    > print mysql_field_nam e($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_arr ay($result)) {
    > print "<table border=2 width='90%'>";
    > print "<tr>";
    > print "<td>";
    > print "<b>" . $row[name] . "</b><br>";
    > print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    > print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    > print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    > print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    > print mysql_field_nam e($result, 4) . ": " . $row[telephone]."<br>";
    > print "</td>";
    > print "<td>";
    > print mysql_field_nam e($result, 0) . ": " . $row[ID]."<br>";
    > print mysql_field_nam e($result, 1) . ": " . $row[name]."<br>";
    > print mysql_field_nam e($result, 2) . ": " . $row[address]."<br>";
    > print mysql_field_nam e($result, 3) . ": " . $row[city]."<br>";
    > print mysql_field_nam e($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?[/color]

    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)

    Comment

    Working...