0

だから私はタイムテーブルグリッド(曜日と時間)を構成するこのコードを持っていて、データベースに接続してテーブルを選択しています.この情報をグリッドに挿入したいのですが、どうすればこれを達成できますか? どうもありがとう

<?php
error_reporting(E_ALL);
mysql_connect('db','user','password')
   or die(mysql_error());
mysql_select_db('db')
   or die(mysql_error());
$sql = "select day,start,class,time
  from event where class='english'";
$res = mysql_query($sql)
   or die(mysql_error());

   $days = array('Monday','Tuesday','Wednesday','Thursday','Friday');
$times= array('09','10','11','12','13','14','15','16');
echo "<table id='grid'>\n";
echo "<tr><td></td>";
for($t=0;$t<count($times);$t++)
  echo "<th>$times[$t]:00</th>";
echo "<tr>\n";
for($d=0;$d<count($days);$d++){
  print "<tr><th>$days[$d]</th>";
  for($t=0;$t<count($times);$t++)
    echo "<td id='td_$days[$d]_$times[$t]'></td>";
  echo "</tr>\n";
}
echo "</table>\n";
?>
4

1 に答える 1

0

まず、配列に foreach() を使用します

   foreach($times as $time)
     echo "<th>$time:00</th>";

第二に、できる限り php を html で混乱させないでください。これらすべてにより、少なくともコードがきれいになります。データベースの結果については、mysql_fetch_array(); を使用する必要があります。

このように行くより:

<table id='grid'>
    <tr>
        <td></td>
        <?php 
            foreach ($times as $time)
                echo "<th>$time:00</th>";
        ?>
    <tr>
        <?php 
            foreach ($days as $day){
                echo "<tr><th>$day</th>";
                foreach ($times as $time){
                    $english = ($day == $res['day'] && $time == $res['time']) ? $res['class'] : '';
                    echo "<td id='td_$day_$time'>{$class}</td>";
                }
            }
        ?>
    </tr>
    </table>
于 2012-04-11T13:28:42.657 に答える