0

我正在使用 PHP 创建一个用户考勤脚本,我基本上想要如下所示的结构:

或者查看我的jsFiddle

<form action='this_page.php' method='post'>
<table>
    <th>Member</th>
    <th>Day One</th>
    <th>Day Two</th>
    <tr>
        <td>Memeber One</td>
        <td><input type='checkbox' name='student[davidsmith]' value='1' /></td>
                <td><input type='checkbox' name='student[davidsmith]' value='1' /></td>
    </tr>
    <tr>
        <td>Member Two</td>
        <td><input type='checkbox' name='student[davidsmith]' value='1' /></td>
                <td><input type='checkbox' name='student[davidsmith]' value='1' /></td>
    </tr>
</table>
</form>

我已经在没有任何数据库交互的情况下动态工作,并且日期数字使用以下代码正常工作:

<?php 
$startDate = new DateTime();
$endDate = new DateTime('2013-09-31');
$days = array();

for ($c = $startDate; $c <= $endDate; $c->modify('+1 day')) {
       echo "<th>".$c->format('d')."</th>";array_push($days,$c); }
 ?>

从这里我扩展介绍数据库交互,因为我想显示我数据库中的用户。

下面的函数显示了我到目前为止的内容,但我遇到了问题

1. 显示日期的动态函数没有与其他表格标题出现在同一行,例如日期在表格标题名字的上方。

我怎样才能解决这个问题?我没有在桌子上工作太多,所以不确定我做了什么。有任何想法吗?

public function viewall() {
            $sth = $this->db->prepare("SELECT firstname, lastname FROM users");
    $sth->execute();


    /* Fetch all of the values of the first column */
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);

            $table = "<form action='' method='post'>
            <table>
                <th>Firstname</th>
                <th>Lastname</th>";
                $startDate = new DateTime();
                $endDate = new DateTime('2013-09-31');
                $days = array();

                for ($c = $startDate; $c <= $endDate; $c->modify('+1 day')) {
                       echo "<th>".$c->format('d')."</th>";array_push($days,$c); }

            foreach($result as $row) {
            $firstname = $row['firstname'];
           $lastname = $row['lastname'];
           $table .= "<tr>
                <td>$firstname</td>
                <td>$lastname</td>
                <td><input type='checkbox' name='$firstname' value='Y' /></td>
            </tr>
            </table></form>";
            echo $table;
        }

}
4

3 回答 3

5
<table>
<th>Member</th>
<th>Day One</th>
<th>Day Two</th>

需要成为

<table>
  <tr>
    <th>Member</th>
    <th>Day One</th>
    <th>Day Two</th>
  </tr>
于 2013-09-18T14:08:37.250 回答
0

在回显您的表格之前回显您的日期时间

尝试更改此代码:

echo "<th>".$c->format('d')."</th>";array_push($days,$c);

进入这个:

$table.="<th>".$c->format('d')."</th>";array_push($days,$c);
于 2013-09-18T14:34:11.467 回答
0

echo立即约会的日期;您也应该将它们连接到table.

于 2013-09-18T14:18:45.347 回答