如何根据时间创建时间表

时间:2017-05-30 20:48:25

标签: php mysqli timetable

我目前正在尝试按月制定时间表。

So here is my table named 'timetable' 这是我的编码' table.php '

<table class="table table-striped table-bordered table-hover" id="dataTables-example">
                                <thead>
                                    <tr>
                                        <th>Date</th>
                                        <th>8.00AM</th>
                                        <th>9.00AM</th>
                                        <th>10.00AM</th>
                                        <th>11.00AM</th>
                                        <th>12.00PM</th>
                                        <th>1.00PM</th>
                                        <th>2.00PM</th>
                                        <th>3.00PM</th>

                                    </tr>
                                </thead>
                                <tbody>

                                    <tr class="odd gradeX">
                                    <?php  
                                        $datequery="SELECT date  FROM day ";
                                        $resultdate = mysqli_query($con,$datequery);
                                        while($row = mysqli_fetch_assoc($resultdate)) {
                                    ?>
                                        <td><?php echo$row['date'] ;?></td>
                                        <?php  
                                        $query="SELECT c_name,l_name,time  FROM timetable
                                        ";
                                        $result = mysqli_query($con,$query);
                                        while($col = mysqli_fetch_assoc($result)) {
                                        ?>
                                        <?php
                                            if($_GET['time'==8]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                        <?php
                                            if($_GET['time'==9]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                        <?php
                                            if($_GET['time'==10]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                        <?php
                                            if($_GET['time'==11]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                        <?php
                                            if($_GET['time'==12]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                         <?php
                                            if($_GET['time'==13]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                          <?php
                                            if($_GET['time'==14]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                       <?php
                                            if($_GET['time'==15]){?>
                                                <td><?php echo $col["c_name"]; echo "<br>"; $col["l_name"];?></td>
                                        <?php }?>
                                        <?php }?>

                                    </tr>

                                    <?php }?>
                                </tbody>
                            </table>

现在的问题是我无法显示&#39; c_name&#39;和&#39; l_name&#39;基于&#39; time&#39;。 所以我需要知道如何根据时间安排它。

2 个答案:

答案 0 :(得分:2)

就像已经说Dan一样,你的条件与时间字段

有误
if($_GET['time' == 8])

此代码将字符串'time'与数字8进行比较并返回False。因此,您的代码将在数组中搜索关键字False。良好的条件是:

if($_GET['time'] == 8)

但是您可以避免使用SQL查询中的“where”子句检查字段时间的所有值。取而代之的是:

$query="SELECT c_name,l_name,time FROM timetable";

您可以这样做:

<?php
$query = mysqli_prepare($con, "SELECT c_name,l_name FROM timetable WHERE time = ?;");
//Here you 'replace' the '?' caracter by the value of the variable $_GET['time']
mysqli_stmt_bind_param($query, "d", $_GET['time']);
mysqli_stmt_execute($query);
mysqli_stmt_bind_result($query, $c_name, $l_name);
//here we fetch all returned rows by the sql query and display a line for each of them
while(mysqli_stmt_fetch($query)){
    echo "<td> ".$c_name." <br> ".$l_name."</td>";
}
mysqli_stmt_close($query);
?>

在将它绑定为避免SQL注入的参数之前,你会好好清理你的$ _GET ['time']。

这将避免有很多“如果”找到好的条目。您的数据库将比php更快地找到好的条目。

有关准备声明的更多信息,请参见:http://php.net/manual/fr/mysqli.prepare.php

为了对你的参数进行sanatize: http://php.net/manual/fr/mysqli.real-escape-string.php

希望这会对你有所帮助。

答案 1 :(得分:0)

那些if语句不应该更像

if($_GET['time'] == 8) { 
    // do something
}