в DB, есть также 26-й и 31-й дни, но не меняется на OK. получает только 3-й день и меняет OK.PHP MYSQL диапазон дат пропущенных дней
Где я ошибаюсь в этом коде?
Код:
*$from = date("Y-m-01");
$to = date("Y-m-t"); // last day current month
$query = "SELECT date FROM tbl_data WHERE date BETWEEN '$from' AND '$to' order by date DESC";
$result = mysqli_query($mysqli,$query);
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
$date = date_create_from_format('Y-m-d', $row['date']);
}
$cursor = date_create_from_format('Y-m-d', $from);
$finish = date_create_from_format('Y-m-d', $to);
while ($cursor != $date)
{
echo date_format($cursor,'Y-m-d') . "--- Missed <br>";
date_modify($cursor, '+1 day');
while($cursor == $date)
{
echo date_format($date,'Y-m-d') . "--- OK <br>";
date_modify($cursor, '+1 day');
}
while($cursor > $finish)
{
die();
}
}*
Выход:
2016-07-01 --- Пропущенные
2016-07-02 --- Пропущенные
2016-07-03 --- OK
2016-07-04 --- Пропущенные
2016-07-05 --- Пропущенные
2016-07-06 --- Пропущенные
2016-07-07 --- Пропущенные
2016-07-08 --- Пропущенные
2016-07-09 --- Пропущенные
2016-07-10 --- Пропущенные
2016-07-11 --- Пропущенные
2016-07-12 --- Пропущенные
2016-07-13 --- Пропущенные
2016-07-14 --- Пропущенные
2016-07-15 --- Пропущенные
2016-07-16 --- Пропущенные
2016-07-17 --- Пропущенные
2016-07-18 --- Пропущенные
2016-07-19 --- Пропущенные
2016-07-20 --- Пропущенные
2016-07-21 --- Пропущенные
2016-07-22 --- Пропущенные
2016-07-23 --- Пропущенные
2016-07-24 --- Пропущенные
2016-07-25 --- Пропущенные
2016-07-26 --- Пропущенные
2016-07-27 --- Пропущенные
2016-07-28 --- Пропущенные
2016-07-29 --- Пропущенные
2016-07-30 --- Пропущено
2016-07-31 --- Пропущено
Я не понимаю, что вы пытаетесь задать, пожалуйста, уточните свой вопрос дальше. – Janno
Не закрывайте свой первый цикл while, закройте его в конце – Rijin
не изменилось, я попробовал это –