Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вывод данных в виде расписания
Форумы портала PHP.SU » » Вопросы новичков » Вывод данных в виде расписания

Страниц (1): [1]
 

1. ruby_byru - 16 Декабря, 2011 - 20:06:37 - перейти к сообщению
Здравствуйте.

Есть таблица с такими полями:
teacher | day | time | subject | class | week

teacher-преподаватель
day-день недели
time-время начала и конца пары
subject-предмет
class-аудитория
week-неделя(над чертой, под чертой или общая)


Необходимо вывести по заданному преподавателю расписание примерно в таком виде:

Нажмите для увеличения


Но еще должна быть учтена неделя, т.е, если над чертой, то нужная ячейка должна быть разделена на две половинки и в верхнюю занесен предмет с аудиторией и таким же образом под чертой, если общая,то так целую ячейку и оставить.

Собственно в этом и проблема, в реализации над/под чертой.
В PHP я новичок, поэтому не судите строго.

Вот код (здесь вывод таблицы, но не учтена неделя):
PHP:
скопировать код в буфер обмена
  1. $th = mysql_query("select * from timetable where name='$_POST[ListBox]';");
  2. if (mysql_numrows($th)!=0)
  3. {
  4.   if($th)
  5.   {  for ($i=0; $i<6; $i++)
  6.      for ($j=0; $j<6; $j++)
  7.      $arr[$i][$j]="";
  8.      while($teacher = mysql_fetch_array($th))
  9.     {
  10.       switch($teacher['day'])
  11.      {
  12.            case 'Пн': $j=0; break;
  13.        case 'Вт': $j=1; break;
  14.        case 'Ср': $j=2; break;
  15.        case 'Чт': $j=3; break;
  16.        case 'Пт': $j=4; break;
  17.        case 'Сб': $j=5; break;
  18.      }
  19.       switch($teacher['time'])
  20.      {
  21.            case '8.00-9.40': $i=0; break;
  22.        case '9.55-11.35': $i=1; break;
  23.        case '12.05-13.45': $i=2; break;
  24.        case '14.15-15.50': $i=3; break;
  25.        case '16.00-17.35': $i=4; break;
  26.        case '17.45-19.20': $i=5; break;
  27.      }
  28.  
  29.      $arr[$i][$j]=$teacher['subject'].' '.$teacher['class'];
  30.     }
  31.      echo "<table border=1>";
  32.      echo "<tr><td></td><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td></tr>";
  33.      echo "<tr><td>8.00-9.40</td><td>".$arr[0][0]."</td><td>".$arr[0][1]."</td><td>".$arr[0][2]."</td><td>".$arr[0][3]."</td><td>".$arr[0][4]."</td><td>".$arr[0][5]."</td></tr>";
  34.      echo "<tr><td>9.55-11.35</td><td>".$arr[1][0]."</td><td>".$arr[1][1]."</td><td>".$arr[1][2]."</td><td>".$arr[1][3]."</td><td>".$arr[1][4]."</td><td>".$arr[1][5]."</td></tr>";
  35.      echo "<tr><td>12.05-13.45</td><td>".$arr[2][0]."</td><td>".$arr[2][1]."</td><td>".$arr[2][2]."</td><td>".$arr[2][3]."</td><td>".$arr[2][4]."</td><td>".$arr[2][5]."</td></tr>";
  36.      echo "<tr><td>14.15-15.50</td><td>".$arr[3][0]."</td><td>".$arr[3][1]."</td><td>".$arr[3][2]."</td><td>".$arr[3][3]."</td><td>".$arr[3][4]."</td><td>".$arr[3][5]."</td></tr>";
  37.      echo "<tr><td>16.00-17.35</td><td>".$arr[4][0]."</td><td>".$arr[4][1]."</td><td>".$arr[4][2]."</td><td>".$arr[4][3]."</td><td>".$arr[4][4]."</td><td>".$arr[4][5]."</td></tr>";
  38.      echo "<tr><td>17.45-19.20</td><td>".$arr[5][0]."</td><td>".$arr[5][2]."</td><td>".$arr[5][2]."</td><td>".$arr[5][3]."</td><td>".$arr[5][4]."</td><td>".$arr[5][5]."</td></tr>";
  39.      echo "</table>";
  40.   }
  41. else
  42. {
  43.   echo "<p><b>Error: ".mysql_error()."</b><p>";
  44. }
  45. }

 

Powered by ExBB FM 1.0 RC1