首页 文章

从MySQL查询对象(PHP)获取列名

提问于
浏览
3

目前,我将MySQL查询结果存储在一个对象数组中,其中每个对象代表一个与查询匹配的行 . 稍后,我运行两个foreach循环来提取结果 - 在下面的示例中,它们作为动态生成的HTML表输出 .

我的问题:是否可以从查询结果对象中获取 column names ?我的目标是能够动态生成表格 Headers ,我的HTML表格目前缺少这些 Headers .

谢谢!

$data = array();

$result = db_query("SELECT column1, column2 FROM table");

while ($obj= db_fetch_object($result)) {
    array_push($data, $obj);
}

$ret = "<table>";
foreach ($data as $row) {
   $ret .= "<tr>";
   foreach ($row as $field) {
      $ret .= "<td>$field</td>";
   }
   $ret .= "</tr>";
}
$ret .= "</table>";

return $ret;

3 回答

  • 3

    问题是陈旧的,但现在可以用mysqli_ *来完成它

    //Function to generate a HTML table from a SQL query
    function myTable($obConn,$sql)
    {
        $rsResult = mysqli_query($obConn, $sql) or die(mysqli_error($obConn));
        if(mysqli_num_rows($rsResult)>0)
        {
            //We start with header
            echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr align=\"center\" bgcolor=\"#CCCCCC\">";
            $i = 0;
            while ($i < mysqli_num_fields($rsResult)){
               $field = mysqli_fetch_field_direct($rsResult, $i);
               $fieldName=$field->name;
               echo "<td><strong>$fieldName</strong></td>";
               $i = $i + 1;
            }
            echo "</tr>";
    
            //We dump info
            $bolWhite=true;
            while ($row = mysqli_fetch_assoc($rsResult)) {
                echo $bolWhite ? "<tr bgcolor=\"#CCCCCC\">" : "<tr bgcolor=\"#FFF\">";
                $bolWhite=!$bolWhite;
                foreach($row as $data) {
                    echo "<td>$data</td>";
                }
                echo "</tr>";
            }
            echo "</table>";
        }
    }
    
  • 2
  • 0

    有一个功能来检索列名称 . 请查看此链接:

    http://php.net/manual/en/function.mysql-fetch-field.php

相关问题