Сохранить даты для базы данных в пределах диапазона дат - PullRequest
0 голосов
/ 15 августа 2011

Я хочу выбрать все понедельники в диапазоне дат и сохранить даты в базе данных.Это код, который я пробовал.Но это сохранило только последнюю дату.Я хочу спасти все понедельники.Пожалуйста, вы можете мне помочь?

$startDate = '2011-08-10';
$endDate = '2011-10-23';

for ($i = strtotime($startDate); $i <= strtotime($endDate); $i = strtotime('+1 day', $i)) {
    if (date('N', $i) == 1) {
       $query = "INSERT INTO class(Day, Date) VALUES('Monday', '".date('Y-m-d', $i)."')";
    }
}

1 Ответ

0 голосов
/ 15 августа 2011

выполнить запрос в цикле, а не в конце

$startDate='2011-08-10';
$endDate='2011-10-23';
for ($i = strtotime($startDate); $i <= strtotime($endDate); $i = strtotime('+1 day', $i)) {
    if (date('N', $i) == 1){
        $query = "INSERT INTO class(Day, Date) VALUES('Monday','".date('Y-m-d', $i)."')";
        mysql_query($query); // you execute the query here otherwise it will overwrite over and over and only the last query will be executed
    }
}

или навалом

$startDate='2011-08-10';
$endDate='2011-10-23';
$query = "INSERT INTO class(Day, Date) VALUES ";
for ($i = strtotime($startDate); $i <= strtotime($endDate); $i = strtotime('+1 day', $i)) {
    if (date('N', $i) == 1){
        $query .= "('Monday','".date('Y-m-d', $i)."'),";
    }
}
$query = substr($query, 0, -1).";"; // remove the last "," and add ;
mysql_query($query);
...