我想显示特定类别的主题,即A或B但是当前我只显示A?

时间:2016-11-30 08:09:38

标签: php

我尝试显示特定td上的每个数据,但我不知道在哪里修复我的代码。请检查下面的网上商店以了解明显的问题。请帮忙解决这个问题。

   <table class="table table-hover table-bordered ">

        <tr><th>Day</th><th colspan="2">08:00-08:40</th><th colspan="2">8:40-09:20</th><th colspan="2">09:20-10:00</th><th>10:00-10:15</th><th colspan="2">10:15-10:55</th><th colspan="2">10:55-11:35</th><th colspan="2">11:35-12:15</th><th>12:15-01:15</th><th colspan="2">01:15-01:55</th><th colspan="2">01:55-02:35</th></tr>

<?php 

    $timesVariants = array("08:00-08:40", "08:40-09:20", "09:20-10:00", "10:00-10:15", "10:15-10:55", "10:55-11:35", "11:35-12:15", "12:15-01:15", "01:15-01:55","01:55-02:35");

$sqlquery = "SELECT * FROM timetable,classroom,subprogramme WHERE classroom.classid = timetable.classid AND subprogramme.subid = timetable.subid";
    $res = $connect->query($sqlquery);

$classes = array();
while($row = $res->fetch_assoc()) {
   $classes[$row['day']][$row['tid']][$row['time']] = array('courseid'=> $row['cid'], 'classname' => $row['classname'], 'subname' => $row['subname']);
}

//This is a loop
foreach($classes as $day => $daySchedule) {
 foreach($daySchedule as $teacher) {

    print '<tr>';
    print "<td>$day</td>";
    foreach($timesVariants as $time) {
      if (empty($teacher[$time])){

             print "<td>*</td><td>*</td>";
      }


      else{

          print '<td>' . $teacher[$time]['courseid'] . '</td><td>' . $teacher[$time]['subname'] . ''. $teacher[$time]['classname'] . '</td>';
      }

    } 
    print '</tr>';
 }
}

?>
</table>

输出

Results display on the webpage

2 个答案:

答案 0 :(得分:0)

你麻烦在GROUP BY。 MySql没有严格的限制(默认情况下),每列应该使用聚合函数,因此结果是第一行,而不是使SQL使用PHP复杂,你的结果似乎不是很大,所以另一个循环不会影响性能:

$timesVariants = array("08:00-08:40", "08:40-09:20", "09:20-10:00", "10:00-10:15", "10:15-10:55", "10:55-11:35", "11:35-12:15", "12:15-1:15", "01:15-01:55","01:55-02:35");

$sqlquery = "SELECT * FROM timetable";

$classes = array();
while($row = $res->fetch_assoc()) {
   $classes[$row['day']][$row['tid']][$row['time']] = array('subject'=> $row['subject'], 'class' => $row['class'], 'progid' => $row['progid']);
}

//This is a loop
foreach($classes as $day => $daySchedule) {
 foreach($daySchedule as $teacher) {

    print '<tr>';
    print "<td>$day</td>";
    foreach($timesVariants as $time) {
      if (empty($teacher[$time]))
         print "<td>None</td><td>None</td>";
      else
         print '<td>' . $teacher[$time]['subject'] . '</td><td>' . $teacher[$time]['class'] . '</td>';
    } 
    print '</tr>';
 }
}

答案 1 :(得分:0)

     <?php

        if(isset($_POST["tid"])){

            $tid = $connect->real_escape_string($_POST["tid"]);


         $sqlquery = "SELECT * FROM timetable,classroom,subprogramme WHERE classroom.classid = timetable.classid AND subprogramme.subid = timetable.subid AND timetable.tid = ".$tid." ORDER BY timetable.timid ASC";
        $res = $connect->query($sqlquery);

            if($res->num_rows > 0){


        ?>

            <table class="table table-bordered table-striped">

            <tr><th>Day</th><th colspan="2">8:00-8:40</th><th colspan="2">8:40-9:20</th><th colspan="2">9:20-10:00</th><th colspan="2">10:00-10:15</th><th colspan="2">10:15-10:55</th><th colspan="2">10:55-11:35</th><th colspan="2">11:35-12:15</th><th colspan="2">12:15-1:15</th><th colspan="2">1:15-1:55</th><th colspan="2">1:55-2:35</th></tr>
    <?php 


        $timesVariants = array("8:00-8:40", "8:40-9:20", "9:20-10:00", "10:00-10:15", "10:15-10:55", "10:55-11:35", "11:35-12:15", "12:15-01:15", "1:15-1:55","1:55-2:35");

    $classes = array();
    while($row = $res->fetch_assoc()) {
       $classes[$row['day']][$row['tid']][$row['time']] = array('courseid'=> $row['cid'], 'classname' => $row['classname'], 'subname' => $row['subname']);
    }

    //This is a loop
    foreach($classes as $day => $daySchedule) {
     foreach($daySchedule as $teacher) {

        print '<tr>';
        print "<td>$day</td>";
        foreach($timesVariants as $time) {
          if (empty($teacher[$time])){

                 print "<td>*</td><td>*</td>";
          }


          else{

              print '<td>' . $teacher[$time]['courseid'] . '</td><td>' . $teacher[$time]['subname'] . ''. $teacher[$time]['classname'] . '</td>';
          }

        } 
        print '</tr>';
     }
    }

    ?>
    </table>

    <?php 
                }

            else{ print "<div class='alert alert-danger col-md-4'><span class='glyphicon glyphicon-remove'></span> Not yet set timetable</div>"; }
        } ?>
    </div>

The problems was on td I forgot to put colspan = 2, and other problem on sql query I forgot to inner join the tables in order to get all right that i want to display on the page.