首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP --我如何打印我的数据库表?

问PHP --我如何打印我的数据库表?
EN

Stack Overflow用户
提问于 2016-05-30 11:03:07
回答 4查看 3K关注 0票数 0

我有一个php代码来打印我的表,包括它的列名。打印必须是动态的,因为它必须根据用户输入打印不同大小/长度的表。:

代码语言:javascript
复制
<table>
    <?php
    while ($row = mysqli_fetch_array($results)) {
        while ($fieldInfo = mysqli_fetch_field($results)) { ?>
            <th> <?php echo $fieldInfo->name; ?> </th>
            <td> <?php echo $row[$fieldInfo->name] ?> </td>
        <?php } 
    } ?>
</table>

这是对$results的查询

代码语言:javascript
复制
$tName = $_POST["tableNames"];   //this data is recieved from another page
require_once("conn.php");
$sql = "SELECT * FROM $tName";
$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error($conn));

我的代码正确地输出了表名和第一行数据,但是它的格式不正确,以下是它的外观:

另外。由于某些原因,它只打印出第一行,即使im使用while循环。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-30 11:13:44

我对您的建议是准备两个数组:第一个数组:包含列名,第二个数组包含数据。

当使用两个foreach生成带有头的第一行和显示数据的第二行时。您忘了添加<tr>标记来划分行。

票数 0
EN

Stack Overflow用户

发布于 2016-05-30 11:10:11

使用

mysqli_fetch_field()函数作为对象返回结果集中的下一列。它将只返回所有列名,而不是表的记录。

您需要使用mysqli_fetch_array()获取所有记录:

代码语言:javascript
复制
while ($info = mysqli_fetch_array($results,MYSQLI_ASSOC)) {
  {
  echo $info['rid'];
  echo $info['level'];
  ....
  }
票数 0
EN

Stack Overflow用户

发布于 2016-05-30 11:52:09

最后,我使用了taras关于将列名存储在数组中的建议:

代码语言:javascript
复制
<table>
    <?php
    while ($fieldInfo = mysqli_fetch_field($results)) { ?>
        <th> <?php echo $fieldInfo->name; ?> </th>
        <?php 
        $colNames[] = $fieldInfo->name;
        ?>
    <?php } 

    while ($row = mysqli_fetch_array($results)) { ?>
        <tr>
        <?php for ($i=0; $i<sizeof($colNames); $i++) { ?>
            <td><?php echo $row[$colNames[$i]] ?>
        <?php } ?>
        </tr>
    <?php } ?>
</table>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37524064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档