Я написал следующий скрипт для создания загрузки файла .ics на основе запроса mySQL.MySQL Query, GET (id) ?!
$start = date('Ymd', strtotime($row['CourseStartDate']));
$end = date('Ymd', strtotime($row['CourseEndDate']));
header("Content-Type: text/Calendar");
header("Content-Disposition: inline; filename=Bookings$id.ics");
echo "BEGIN:VCALENDAR\n";
echo "PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN\n";
echo "VERSION:2.0\n";
echo "METHOD:PUBLISH\n";
echo "X-MS-OLK-FORCEINSPECTOROPEN:TRUE\n";
echo "BEGIN:VEVENT\n";
echo "CLASS:PUBLIC\n";
echo "CREATED:20091109T101015Z\n";
echo "DESCRIPTION:{$row['Attendees']}\n";
echo "DTEND:{$end}\n";
echo "DTSTAMP:20100109T093305Z\n";
echo "DTSTART:{$start}\n";
echo "LAST-MODIFIED:20091109T101015Z\n";
echo "LOCATION:{$row['CourseLocation']}\n";
echo "PRIORITY:5\n";
echo "SEQUENCE:0\n";
echo "SUMMARY:{$row['CourseTitle']}\n";
echo "TRANSP:OPAQUE\n";
echo "UID:".date('Ymd') . 'T' .date('His').rand();
echo "X-MICROSOFT-CDO-BUSYSTATUS:BUSY\n";
echo "X-MICROSOFT-CDO-IMPORTANCE:1\n";
echo "X-MICROSOFT-DISALLOW-COUNTER:FALSE\n";
echo "X-MS-OLK-ALLOWEXTERNCHECK:TRUE\n";
echo "X-MS-OLK-AUTOFILLLOCATION:FALSE\n";
echo "X-MS-OLK-CONFTYPE:0\n";
echo "END:VEVENT\n";
echo "END:VCALENDAR\n";
MySql
$sql = "SELECT BookingID, CourseStartDate, CourseEndDate, CourseTitle,(' ',Forenames,' ', Surname) as Attendees, LastUpdated
FROM Bookings
GROUP BY CourseStartDate, CourseTitle
ORDER BY CourseStartDate DESC";
При загрузке файла он создает идеальный событие календаря со всем целевым, как и планировалось, однако он возвращает только один курс, я хотел бы быть в состоянии сделать это курс по курсу, т. е. просмотреть курс и иметь возможность «загрузить в календарь», а затем запустить скрипт на основе этого курса!?. Я пробовал писать в заявлении if
, но безрезультатно. Где я ошибаюсь ?!
Не могли бы вы просто создать несколько 'VEVENT' в цикле, внутри вашего блока выражений эха, которые генерируют файл? Ваш SQL (и нам нужен код, обрабатывающий результаты запроса, btw), должен иметь нужные вам данные, но вы должны перебирать набор результатов и заполнять '$ row' данными из каждого результата, а затем записывать их на новый «VEVENT». –
Спасибо @ShotgunNinja .. Извините, очень новичок в php и mySQL-запросах. Курсы отображаются на домашней странице сайта, повторяя некоторые из '$ sql' сверху в таблицу дата курса - coursename - добавить в календарь другая дата курса - еще один курс - добавить в календарь и т. Д. И т. Д. The td 'add to calendar - это ссылка на кнопку с файлом caltest.php, где я написал сценарий VCALENDAR. Я хочу, чтобы каждая из этих кнопок запускала сценарий, основываясь на курсе, которым они тоже являются? Пожалуйста, помогите! – webcreator25