我正在创建一个使用 PDO 方法从 SQL 数据库获取数据的表。数据加载正常,但我遇到的问题是我使用的“for 循环”在每个(表格行)之后乘以一个(表格标题)。
我想知道问题可能是什么可能的解决方案。
任何帮助表示赞赏,谢谢!
这是代码:
<?php
for($i=0; $row = $result->fetch(); $i++){
?>
<table id="eventstable">
<tr>
<th>Event ID</th>
<th>Event Name</th>
<th>Location</th>
<th>Date</th>
</tr>
<tr>
<td><?php echo $row['event_id']; ?></td>
<td><?php echo $row['event_name']; ?></td>
<td><?php echo $row['event_location']; ?></td>
<td><?php echo $row['event_date']; ?></td>
</tr>
</table>
<?php }
?>
最顶部是连接文件,它创建到我的本地数据库的连接和一个语句,它引入了我想从数据库中显示的信息,如下所示:
$result = $conn->prepare("SELECT * FROM events");
$result->execute();
很少有可能的解决方案是
i) 将标题部分和表格开始和结束标记放在 for 循环之外。如果没有数据,这将为您提供一个带有标题的空表。
ii) 仅当 i = 0 时才放置 if 条件并打印标题,并将表标签置于循环之外。如果没有数据,这将为您提供一个空表。
编辑:方法二(因为你正在学习)
<table id="eventstable">
<?php
for($i=0; $row = $result->fetch(); $i++){
if($i == 0){
?>
<tr>
<th>Event ID</th>
<th>Event Name</th>
<th>Location</th>
<th>Date</th>
</tr>
<?php }//if statment ends here ?>
<tr>
<td><?php echo $row['event_id']; ?></td>
<td><?php echo $row['event_name']; ?></td>
<td><?php echo $row['event_location']; ?></td>
<td><?php echo $row['event_date']; ?></td>
</tr>
<?php }
?>
我还建议,既然您正在学习,请使用比 for 循环更好的方法。查看php PDO手册,看看while或foreach的用法。它会帮助更多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句