Создание календаря на PHP - PullRequest
0 голосов
/ 06 мая 2011

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

    function make_row( $slot , array $list )
   {
      $output = '';
      $output .= '<tr><td>' . $slot . '</td>';
      for ( $i = 1; $i <= 7 ; $i++ )
      {
         $details = '&nbsp;';
         if ( isset($list[ $i ]) )
         {  
            $details = $list[ $i ];
         }
         $output .= '<td>' . $details . '</td>';
      }
      $output .= '</tr>';
      return $output;
   }

   $timeslot = '';
   $item = array();
   while ($eventrow = mysql_fetch_array($sqlevents)) 
   {
      $timeslot = $eventrow['PreferredStart'];
      $day = (int)$eventrow['idDay'];

      if ( !is_array( $item[ $timeslot ] ) )
      {
         $item[ $timeslot ] = array();
      }

      $item[ $timeslot ][ $day ] = $eventrow['EventDetails'];
   }

   foreach( $item as $slot => $list )
   {
      echo make_row( $slot, $list );
   }

Однако мои настройки таблицы БД изменились. Теперь у меня есть полчаса вместо полчаса. Таблица отображается правильно, но я пытаюсь убедиться, что если кто-то входит на встречу, то в календаре отмечен весь блок, а не только время начала. Может ли кто-нибудь помочь мне добавить время окончания, а также временные интервалы между ними?

Большое спасибо, Brett

1 Ответ

0 голосов
/ 06 мая 2011

На этот вопрос довольно сложно ответить, не зная структуры базы данных или запроса sql, который выдал $sqlevents, но похоже, что временной интервал просто взят прямо из базы данных:

$timeslot = $eventrow['PreferredStart'];

Вы можете изменитьэто путем нахождения времени окончания (я предполагаю имя PreferredEnd в базе данных, но вам, очевидно, придется проверить это самостоятельно, поскольку я не знаю схему вашей базы данных) и сложения их вместе:

$timeslot_start = $eventrow['PreferredStart'];
$timeslot_end   = $eventrow['PreferredEnd'];   // I'm gonna assume this is right

$timeslot = $timeslot_start.'-'.$timeslot_end; // Make a new field combining both

Теперь у вашего $timeslot var должно быть время начала и окончания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...