如何在表中显示PHP结果数据

时间:2017-04-24 18:32:13

标签: php

步骤1:这是返回结果集的函数

public function getLogById($reg_id) {

        $stmt = $this->conn->prepare("SELECT * FROM tracking_log WHERE registration_id = ? LIMIT 5");
        $stmt->bind_param("s", $reg_id);

        if ($stmt->execute()) {

            $result = $stmt->get_result()->fetch_all();
            $stmt->close();
            return $result;
        }
        else {

            return false;
        }


    }

步骤2:我在这里调用该功能

if(isset($_SESSION['registration_id'])){

    $id = $_SESSION['registration_id'];

    $result = $logs->getLogById($id);

    echo "<table>";

    foreach($tracking_result as $result)
                      {
                          foreach($result as $key => $value)

                          {
                              //echo "<li>$key : $value</li>";
                              echo "<tr class=\"active\" role=\"row\">";
                              echo "<td>Here I want to Display colum-1 of my DB-Table</td>";
                              echo "<td>"Here I want to Display colum-3 of my DB-Table"</td>";
                              echo "<td>Here I want to Display colum-4 of my DB-Table</td>";
                              echo "</tr>";

                          }
                      }
    echo "<\table>";
}

当我print_r($result);时,它会显示我的结果

1

35124

2017-04-12 00:00:00

30.102261

-81.711777

2

35124

2017-04-10 00:00:00

30.102261

-81.711457

3

35124

2017-04-11 00:00:00

30.063936

-81.711307

4

35124

2017-04-12 00:00:00

30.102451

-81.711957

5

35124

2017-08-12 00:00:00

30.102261

-81.795777

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

你只需要一个foreach循环。并且您必须遍历数据库$result

根据您的提取方式,您可以在foreach循环中使用$row['some_column_name']$row[0]来访问您的列。

foreach($result as $row) {

    echo "<tr class=\"active\" role=\"row\">";
    echo "<td>".$row[0]."</td>";
    echo "<td>".$row[1]."</td>";
    echo "<td>".$row[2]."</td>";
    echo "<td>".$row[3]."</td>";
    echo "</tr";

}

答案 1 :(得分:0)

我可以在这看到一些沉淀。首先我不明白为什么你把它放在$tracking_result上。第二件事是错误的字符串"<td>"Here I want to Display colum-3 of my DB-Table"</td>"

无论如何,您需要做的第一件事就是在没有任何PHP交互的情况下制作一个空的HTML示例,只是为了看看您想要实现的目标。例如:

<table>
    <tr>
        <th>Header 1</th>
        <th>Header 2</th>
        <th>Header 3</th>
    <tr/>
    <tr>
        <td>Row 1 Value 1</td>
        <td>Row 1 Value 2</td>
        <td>Row 1 Value 3</td>
    <tr/>
    <tr>
        <td>Row 2 Value 1</td>
        <td>Row 2 Value 2</td>
        <td>Row 2 Value 3</td>
    <tr/>
    <tr>
        <td>Row 3 Value 1</td>
        <td>Row 3 Value 2</td>
        <td>Row 3 Value 3</td>
    <tr/>
</table>

这是一个简单的HTML表格。如果您想用已知数据和已知标题填充它,您只需要专注于您的行:

<table>
    <tr>
        <th>Header 1</th>
        <th>Header 2</th>
        <th>Header 3</th>
    <tr/>
    <?php foreach($results as $row) { ?>
    <tr>
        <td><?php echo $row['value1']; ?></td>
        <td><?php echo $row['value2']; ?></</td>
        <td><?php echo $row['value3']; ?></</td>
    <tr/>
    <?php } ?>
</table>

但是如果你想用未知的数据或标题填充它,那么我们将开始更复杂的事情。尊重这条规则你可以实现:

变量$ result必须是String索引数组。

这意味着我们可以将键值作为可读标头。有一个有用的PHP函数可以帮助我们:array_keys。有了它,我们可以将这些标题作为新数组。很酷,对吗?但它只有在$results中至少有一行时才有效。如果它只是一个空数组,我们什么都没得到。所以我们需要在开始之前检查它。

<?php
    $isEmpty = empty($results);
    if($isEmpty) {
        echo "I'm sorry, we got nothing. :(";
    } else {
        $headers = array_keys($results[0]); // I'm assuming that all of them have the same indexes.
?>
<table>
    <tr>
        <?php foreach($headers as $header) { ?>
        <th><?php echo $header; ?></th>
        <?php } ?>
    <tr/>
    <?php foreach($results as $row) { ?>
    <tr>
        <?php foreach($headers as $header) { ?>
        <td><?php echo $row[$header]; ?></td>
        <?php } ?>
    <tr/>
    <?php } ?>
</table>
<?php
    }
?>

我真的不建议使用如此通用的东西,但就是这样。