В кроне другие вычисления прекрасно отрабатывают, а это ни в какую.. Может кто подскажет способ спрятать условие в сам запрос и "укоротить код". Спасибо.
// Выбираем из таблицы активные платежи со статусом -В ожидании- и сверяем время - когда добавлены $result = data_select(330, "`status`=0 and `f5690`=0"); // Поле f5690 - Флаг статуса: 0, 1 или 2 (В ожидании, Оплачен, Не проведён) while ($row = sql_fetch_assoc($result)) { // вычисляем время... $dt = date("d-m-y h:i:s", strtotime($row['add_time'])); $dtt = date("d-m-y h:i:s"); $dt_strok = explode(' ',$dt); $dt_data = explode('.',$dt_strok[0]); $dt_time = explode(':',$dt_strok[1]); $dtt_strok = explode(' ',$dtt); $dtt_data = explode('.',$dtt_strok[0]); $dtt_time = explode(':',$dtt_strok[1]); $timestamp_dt = mktime($dt_time[0],$dt_time[1],$dt_time[2],$dt_data[0],$dt_data[1],$dt_data[2]); $timestamp_dtt = mktime($dtt_time[0],$dtt_time[1],$dtt_time[2],$dtt_data[0],$dtt_data[1],$dtt_data[2]); $diff = $timestamp_dtt - $timestamp_dt; // тут считаем минуты, часы $secund = $diff / 60; $minut = $secund / 60; $chasov = $minut / 60; // Если прошло уже более 1 часа - перемещаем в архив и ставим статус -Не проведено- if ($chasov > 1) { $data = Array(); $data['f5660'] = "Не проведено"; $data['status'] = 1; data_update(330, EVENTS_ENABLE, $data, "`id`=",$row['id']); } }
P.S.: В верхнем примере кода проблема была в запросе data_select - не хватало кавычек у значения поля: `f5690`='0' , а так всё работало.
Но немного повозившись, переписал свой "говнокод" в более приличную конструкцию:
// Выбираем из таблицы активные платежи со статусом -В ожидании- и сверяем время - когда добавлены $time_later = form_eng_time(date("d.m.Y H:i", time()-3600)); $sqlQuery = "SELECT * FROM ".DATA_TABLE."330 WHERE `status`=0 and `add_time`<'".$time_later."' and `f5690`='0'"; $result = mysql_query($sqlQuery); while ($row = mysql_fetch_assoc($result)) { $data = Array(); $data['f5660'] = "Не проведено"; $data['status'] = 1; data_update(330, EVENTS_ENABLE, $data, "`id`=",$row['id']); }
Может кому пригодится - спасибо за оперативную помощь))