Надеюсь, у вас есть время, чтобы старая собака (71 год) научилась новым трюкам.У меня есть около недели опыта работы с PHP и mysql, но я получаю удовольствие, изучая, как это работает, и я добился определенного прогресса.Но у меня есть проблема запроса / логики / синтаксиса, и я хотел бы получить некоторую информацию, если вы не будете слишком сильно смеяться над моими извилинами.
У меня есть программа-календарь, которая не может вывести напоминаниякак я хочу их.Я думал, что попробую разобраться в этом ради забавы, но я не могу изменить содержимое таблицы, чтобы не испортить всю программу.Я преуспел в том, чтобы заставить его делать то, что я хотел: отправлять все свои напоминания за один день в одном письме, просто взяв записи таблицы «время», отсортировав их и отфильтровав в то, что я хотел.Но пару дней спустя я заметил, что любая запись, которая была до 17:00 моего времени (GMT -7), была в порядке, но любая после этого времени была мусором.Так что, присмотревшись к таблице, я заметил, что в любое время после 23:59 по Гринвичу было 5 цифр, а до этого - 6 цифр.Итак, я нашел проблему.Я решил, что все, что мне нужно было сделать, это поместить IF в середину и соответственно добавить дополнительные цифры, изменить его на время эпохи UNIX с помощью strtotime, а затем выполнить date () и использовать только часы и минуты.Ты уже смеешься?Позвольте мне повторить, я очень мало знаю о PHP и MySQL, но я учусь, и это делает меня счастливым и, возможно, немного моложе.
Вот что у меня есть.Я отправлю запрос только потому, что подключение к БД и отправка почты работает нормально.Этот первый работает ... за исключением проблемы, упомянутой ранее ...
date_default_timezone_set('America/Denver');
$today = date("Ymd");
mysql_select_db($dbname);
$query = sprintf("SELECT cal_name, cal_time, cal_description, cal_date FROM webcal_entry WHERE cal_date = '".$today."'");
$result = mysql_query($query);
$body = '';
$mail = '';
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$mail = sprintf("Event: %s \nTime: %s \nDesc: %s \n\n", $row[0], date("H:i",((strtotime($row[1])-25200))), $row[2]);
}
mysql_free_result($result);
Это сумасшедшее исправление, в котором действительно чего-то не хватает ...
date_default_timezone_set('America/Denver');
$today = date("Ymd");
mysql_select_db($dbname);
$query = sprintf("SELECT cal_name, cal_time, cal_description, cal_date FROM webcal_entry WHERE cal_date = '".$today."'");
$result = mysql_query($query);
$body = '';
$mail = '';
$stt = '';
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$mail = sprintf("Event: %s \nTime: %s \nDesc: %s \n\n", $row[0], ($stt = { if ($row[1] < 100000, + 1234500000) ELSE ($row[1] + 1234000000) }) date("H:i",((strtotime($stt)-25200))), $row[2])
};
Надеюсь, одноиз вас хочет взять это и пошутить над старым парнем ... и перестать смеяться!