步骤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
请帮我解决这个问题。
答案 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>
但是如果你想用未知的数据或标题填充它,那么我们将开始更复杂的事情。尊重这条规则你可以实现:
这意味着我们可以将键值作为可读标头。有一个有用的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
}
?>
我真的不建议使用如此通用的东西,但就是这样。