从数据库

时间:2016-03-04 18:40:15

标签: php mysql pdo

我正在处理一个项目,我正在从用户那里获取一系列日期的输入,然后在这两个日期之间打印出结果。目前,我从数据库中获取数据并打印它们没有任何问题。问题在于表格的格式和结构。

目前,每次打印结果时,表格都会打印表格的标题,而我正在改变这些问题。

提供的代码就是我一直在使用的代码。

这是一个课程,所以请尝试解释需要做什么,而不是简单地给我代码!

<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
}
?>

http://cps276.net/zgambrell/04/index.php

2 个答案:

答案 0 :(得分:0)

您应该将表和表标题移出循环,否则最终会为查询返回的每一行添加它们。代码应大致如下所示:

<table>
  <!-- table header --> 
  <tr>
    <th>..</th>
    ..
  </tr>

  <!-- Records -->
  <?php
  for (?;?;?) {
  ?>
  <tr>
    <td><?php echo $row['?'] ?></td>
    ..
  </tr>
  <?php } ?>
<!-- End of table --> 
</table>

答案 1 :(得分:0)

  

表html代码在ForEach循环中。这就是它为每条记录打印的原因。将表colum头放在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>