为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不手动指定列的情况下以 HTML 显示所有 DB 列的记录?

如何在不手动指定列的情况下以 HTML 显示所有 DB 列的记录?

PHP
翻阅古今 2022-10-14 14:26:25
我想从 PostgreSQL DB 表中提取所有记录,并使用 HTML 中的表显示这些数据,而不指定列名。我有很多包含很多列的表,所以我希望我的 HTML 查询尽可能地响应。使用下面的代码,我可以从数据库中查询数据并在浏览器上打印数据,但我必须指定要显示的列。<!DOCTYPE html><html><head><meta charset=utf-8"> <title>Map</title></head><body onload="init()"><h1>Map</h1><div><?php$conn = pg_connect("host=localhost port=5432 dbname=visualization user=postgres password=*******");$result = pg_query($conn,"SELECT * FROM myTable");echo "<table>";while($row=pg_fetch_assoc($result)){    echo "<tr>";    echo "<td width='200'>" . $row['lon'] . "</td>";  // set col manually    echo "<td width='200'>" . $row['lat'] . "</td>";  // set col manually    echo "</tr>";}echo "</table>";pg_close($conn);?></div></body></html>结果如下:我只显示 2 列,因为我手动指定了列。我想在不手动指定的情况下显示表中的所有列及其记录(最多 100 列)。如何做到这一点?
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

由于您的列位于数组中,因此您可以foreach()在行上方。列的显示要么需要足够好,要么只保留默认值,以使显示看起来合理......


while($row=pg_fetch_assoc($result)){

    echo "<tr>";

    foreach ( $row as $key => $value )  {

        echo "<td align='center' width='200'>" . $value . "</td>";

    }

    echo "</tr>";

}


查看完整回答
反对 回复 2022-10-14
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

尝试 :


while($row=pg_fetch_assoc($result)){

    echo "<tr>";

    $maxColumnDisplay = 100;

    foreach($row as $col){

        if(!$maxColumnDisplay--) break;

        echo "<td align='center' width='200'>" . $col . "</td>";

    }

    echo "</tr>";

}


查看完整回答
反对 回复 2022-10-14
?
慕少森

TA贡献2019条经验 获得超9个赞

尝试这个:


function printTable(&$result) //result set

{

    /**  Set up Table and Headers **/

    $fieldinfo = $result->fetch_fields();

    echo '<table class="sqldump">' . "\n";

    echo '<tr class="header">' . "\n";

    foreach ($fieldinfo as $fieldval) {

        echo "<td>".$fieldval->name."</td>\n";

    }

    echo "</tr>\n";


    /** dump rows **/

    while($row = $result->fetch_assoc()) {

        echo "<tr>";

        foreach ($row as $column) {

            echo "<td>".$column."</td>\n";

        }

        echo "</tr>";

    }

    echo "</table>\n";


    /**  gc  **/

    $result->free();

}


查看完整回答
反对 回复 2022-10-14
  • 3 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信