Я пытаюсь найти наилучший подход для разработки «календаря на 7 дней», который будет состоять из таблицы HTML со столбцами «Имя, воскресенье, понедельник, вторник, среда, четверг, пятница, суббота».Строки таблицы HTML будут заполнены данными из моей базы данных, т.е.Имя будет иметь имена людей. Воскресенье покажет, что этот человек должен делать в воскресенье, то есть «чистить зубы» и т. Д. И т. Д. Это очень похоже на календари событий, за исключением того, что я ищу для выполнения, не требует почасового просмотра,просто 7 дней, с воскресенья по субботу.
Моя база данных в настоящее время состоит из «Name, EventDetails и EventDate».
Мои столбцы таблицы HTML состоят из столбцов «Имя - Воскресенье - Понедельник - Вторник - ...»
Моя логика: Каждый раз, когда страница загружается, скрипт запрашивает базу данных и видитесли есть какие-либо записи EventDate, которые равны одному из 7 дней недели, просматриваемой в данный момент.Если EventDate совпадает, он будет перечислен в строке, соответствующей соответствующему столбцу таблицы HTML этой даты.Нажатие «Предыдущая неделя» или «Следующая неделя» изменится на другую неделю и должно перезапустить сценарий, но на этот раз он будет использовать другой список дней для проверки.
Кто-нибудь захочет поделиться некоторыми примерамичто они могут придумать для достижения этой цели?
Вот что я придумал до сих пор ... Проблема в том, что, если под человеком более одного события, это создает новый ряддля каждого события, тогда как я работаю над тем, чтобы перечислить каждое событие в одну строку.
<table border='1'>
<tr>
<th>Name</th>
<th>Sunday</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
</tr>
<?php
function getCurrentWeek()
{
$weekArray = array();
// set the current date
$date = date("m/d/Y"); //'03/08/2011';
$ts = strtotime( $date );
// calculate the number of days since Monday
$dow = date('w', $ts);
$offset = $dow - 0;
if ($offset < 0) $offset = 6;
// calculate timestamp for the Monday
$ts = $ts - $offset*86400;
// loop from Monday till Sunday
for ($i=0; $i<7; $i++, $ts+=86400){
$temp_date = date("Y-m-d", $ts); // Reformat the dates to match the database
array_push( $weekArray, $temp_date );
}
return($weekArray);
}
$currentWeek = getCurrentWeek();
// Loop through the data array
while($row = mysql_fetch_array($result)){
$eventDate= $row['EventDate'];
// Loop through the currentWeek array to match a date from the database from a date in the current week
foreach ($currentWeek as $weekDay){
// If there is a matching date...
if ($eventDate == $weekDay) {
echo "<tr><td>".$row['Name']."</td>";
foreach ($currentWeek as $weekDay2){
if ($eventDate == $weekDay2)
echo "<td>".$row['EventName']."</td>";
else
echo "<td></td>";
}
echo "</tr>";
}
}
}
?>
</table>