从数据库使用PHP动态地打印表格的问题
我正在处理一个项目,我从用户输入一系列日期,然后打印出这两个日期之间的结果。目前,我从数据库获取数据并将其打印出来没有任何问题。问题在于表格的格式和结构。从数据库使用PHP动态地打印表格的问题
当前表格正在打印表格的标题,每次打印结果时,我遇到的问题都会改变。
提供的代码是我一直在使用的。
这是一个类,所以请尝试解释需要做什么,而不是简单地给我代码!
<form method="post" action="index.php">
Date Range From:
<input type="text" id="dateFrom" name="dateFrom" value="">
To:
<input type="text" id="dateTo" name="dateTo" value="">
<input type="submit" id="submit">
</form>
<?php
include('../inclass/db_connect.php');
if(isset($_POST['dateFrom'])){$dateFrom = $_POST['dateFrom'];}else{$dateFrom=0;};
if(isset($_POST['dateTo'])){$dateTo = $_POST['dateTo'];}else{$dateTo=0;};
$result =$pdo->prepare("SELECT matchDate, player1, player2, result, eco FROM matches WHERE matchDate BETWEEN :a AND :b LIMIT 250");
$result->bindParam(':a', $dateFrom);
$result->bindParam(':b', $dateTo);
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<table border="1">
<tr>
<th>Match Date</th>
<th>Player 1</th>
<th>Player 2</th>
<th>Result</th>
<th>ECO Code</th>
</tr>
<tr>
<td><?php echo $row['matchDate']; ?></td>
<td><?php echo $row['player1']; ?></td>
<td><?php echo $row['player2']; ?></td>
<td><?php echo $row['result']; ?></td>
<td><?php echo $row['eco']; ?></td>
</tr>
</table>
<?php
}
?>
你应该将表和表头圈外或你最终会加入他们查询返回的每一行。代码应该大致如下所示:
<table>
<!-- table header -->
<tr>
<th>..</th>
..
</tr>
<!-- Records -->
<?php
for (?;?;?) {
?>
<tr>
<td><?php echo $row['?'] ?></td>
..
</tr>
<?php } ?>
<!-- End of table -->
</table>
当我将表头移动到循环外部时,它只将第一个循环放入表中,其他数据记录未被处理并放入表中正确的行和列中。你是否知道我可以拥有它,所有的数据都被格式化成表格? – Zgbrell
看起来你要么没有正确地封装php脚本,要么他们放错了位置。我尝试从日期范围链接运行php脚本,并查看源代码生成,似乎关闭表标记放置在for循环。 –
表HTML代码foreach循环中。这就是为什么它为每个记录打印。将表格柱头置于for循环之外。
<table border="1">
<tr>
<th>Match Date</th>
<th>Player 1</th>
<th>Player 2</th>
<th>Result</th>
<th>ECO Code</th>
</tr>
for($i=0; $row = $result->fetch(); $i++){
?>
<tr>
<td><?php echo $row['matchDate']; ?></td>
<td><?php echo $row['player1']; ?></td>
<td><?php echo $row['player2']; ?></td>
<td><?php echo $row['result']; ?></td>
<td><?php echo $row['eco']; ?></td>
</tr>
<?php
}
?>
</table>
你能告诉一个有效的日期范围,以便我们检查你的链接吗? –
2000/06/06 - 2001/06/06 – Zgbrell
我给出的答案 –