从MySQL查询中检索列名[重复]

This question already has an answer here:

I am attempting to retrieve the column headers for html headers from a MySQL query. The structure of my application is such that the column headers aren't static (sometimes there are 4, sometimes 7, etc.) For some unbearable reason I can't find a simple way to get the column names from any given query.

My end goal is to output an html table from the query.

</div>

Well if you get the query as an associative array, you can do something like this:

$query = "Select [stuff]";
$results = mysql_query($query);
$i = 0;

while ($row = mysql_fetch_assoc($results)) {
    if ($i < 1) {
        foreach($row as $key => $val) {
            echo $key;//column name
        }
    }

    //Do other stuff
    $i++;
}

And yes, I know they should be doing mysqli_..., but this is my example using old mysql_...

Edit

To expand on this:

$query = "Select [stuff]";
$results = mysql_query($query);
$i = 0;

echo "<table>";

while ($row = mysql_fetch_assoc($results)) {
    echo "<tr>";
    if ($i < 1) {
        foreach($row as $key => $val) {
            echo "<td>".$key."</td>";//column name
        }
    }
    echo "</tr>";

    echo "<tr>";
    foreach($row as $key => $val) {
        echo "<td>".$val."</td>";//column name
    }
    echo "</tr>";

    //Do other stuff
    $i++;
}

You can use function mysql_list_fields for getting column names.

Code below gets data from sql. Including header column

// Data, depends on your sql statement
$sql_dt = array(); // make sure it is array

foreach( $sql_dt as $key => $val ) {    
$data[] = <<< EOH
  <tr>
    <th>$val['column_name']</th> <tr/>
    <th>$val['column_age']</th>
  <tr/>
EOH;
}

$table_dt = implode( $data );
echo <<< EOT
<table>
  <tr>
    <th>Name</th> <tr/>
    <th>Age</th>
  <tr/>
  {$table_dt}
<table/>
EOT;