从MySQL查询中检索列名

时间:2013-12-18 03:27:45

标签: php mysql

我正在尝试从MySQL查询中检索html标头的列标题。我的应用程序的结构是这样的,列标题不是静态的(有时有4个,有时是7个等)。由于某些无法忍受的原因,我找不到从任何给定查询中获取列名的简单方法。

我的最终目标是从查询中输出一个html表。

3 个答案:

答案 0 :(得分:1)

如果您将查询作为关联数组,您可以执行以下操作:

$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++;
}

是的,我知道他们应该做mysqli _...,但这是我使用旧的mysql _...

的例子

修改

要扩展此:

$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++;
}

答案 1 :(得分:0)

您可以使用函数mysql_list_fields获取列名。

答案 2 :(得分:0)

下面的代码从sql获取数据。包括标题栏

// 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;