Это учебный проект для меня, и я уже сделал пару запросов на этом сайте, который научил меня совсем немного. Но у меня проблемы с рутиной «переключения», и я буду признателен за любые советы, которые смогу найти. Эта процедура переключения была предложением, но я получаю ошибки. Я провел немало исследований, но до сих пор не могу понять, как выполнить этот процесс. Я также не понимаю, что означает "@" в "date_create (" @ $ qucls ")". Кажется, не имеет значения, есть ли он там или нет, но это было предложение вместе с рутиной.
Запросы проверяют, насколько я могу получить то, что я хочу произвести, но как только я пытаюсь обновить временные строки, он застревает.
Ошибка: «date_format () ожидает, что параметр 1 будет DateTime, логическое значение задано в ...». Насколько я знаю, $ qucls должен быть строкой чисел, а не истиной / ложью. В этих полях таблицы определенно есть числовая строка в виде int.
Просто, чтобы повторить другие мои посты, я не могу изменить базу данных, не выходя из головы. Мне нужно взять информацию из нее, чтобы сделать напоминания по электронной почте из календарной программы. Таблицы запутаны с необычными формами и длинами строк даты / времени, поэтому в этом сценарии есть гораздо больше, чем показано здесь. В моем процессе, это то, где я нахожусь в выяснении этого, и это не так уж плохо для septuagenarian. Я пойду на уборку после того, как выясню процессы, которые дают правильный результат.
Вот соответствующая часть сценария:
date_default_timezone_set('UTC');
$today = date("Ymd");
mysql_select_db($dbname);
$querydel = "SELECT cal_entry_id, cal_type FROM webcal_entry_log WHERE cal_type = 'D'";
$delqu = mysql_query($querydel);
$i = 0;
while ($row = mysql_fetch_array($delqu, MYSQL_NUM)) {
$qudel[$i] = $row[0];
}
$query1 = "SELECT cal_id, cal_name, cal_date, cal_time, cal_type, cal_description FROM webcal_entry WHERE cal_type = 'M' AND cal_date != ' . $today . ' AND cal_id != " . $qudel[$i];
$wequ1 = mysql_query($query1);
while ($row = mysql_fetch_array($wequ1, MYSQL_NUM)) {
$quid1[$i] = $row[0];
$quname[$i] = $row[1];
$qutime[$i] = $row[3];
$qudesc[$i] = $row[5];
$query2 = "SELECT cal_id, cal_type FROM webcal_entry_repeats WHERE cal_id = " . $quid1[$i];
$wer1 = mysql_query($query2);
if ($row = mysql_fetch_array($wer1, MYSQL_NUM)) {
$qutype[$i] = $row[1];
}
$query3 = "SELECT cal_id, cal_last_sent FROM webcal_reminders WHERE cal_id = " . $quid1[$i];
$wer2 = mysql_query($query3);
if ($row = mysql_fetch_array($wer2, MYSQL_NUM)) {
$qucls[$i++] = $row[1];
}
}
for ($j = 0; $j < $i; $j++) {
}
// date calculations - switch routine
$dateObj = date_create("@$qucls");
switch($qutype) {
case "daily":
date_add($dateObj, date_interval_create_from_date_string("1 day"));
break;
case "weekly":
date_add($dateObj, date_interval_create_from_date_string("1 week"));
break;
case "monthly":
date_add($dateObj, date_interval_create_from_date_string("1 month"));
break;
case "yearly":
date_add($dateObj, date_interval_create_from_date_string("1 year"));
break;
}
$qucls = date_format($dateObj, "U");
Спасибо!
Редактировать: $ qucls выводит массив меток времени Unix в виде типа int () после завершения цикла запроса. Как только он принимает - $ dateObj = date_create ("@ $ qucls"), $ dateObj возвращает false. Я не могу найти трюк.