Итак, у меня есть таблица базы данных с месяцами, числовыми значениями месяцев и лет. например. 6 июня 2020 г. .
У меня есть раскрывающийся список выбора, который динамически заполняется на основе данных из таблицы.
Идея в том, что если текущий месяц июнь, раскрывающееся меню выбора должно быть заполнено только месяцами с июня по декабрь.
Проблема, с которой я столкнулся, которую я не понимаю, заключается в том, что на странице, когда я запускаю запрос, раскрывающийся список только заселяется с мая по сентябрь. Если я запустил тот же запрос непосредственно в таблице в базе данных, я получу желаемые результаты.
Запрос ниже:
$yvalue = $_POST['years']; //assume this to be "2020";
$curyear = date('Y');
$curmonth = date('n'); // Lets also assume this to be "5";
if ($yvalue==$curyear) {
$query = "SELECT calmonthsID, months, value, years from calmonths WHERE years=? AND value>=? ORDER BY calmonthsID ASC";
$stmt = $connQlife->prepare($query);
$stmt->bind_param('ss', $yvalue, $curmonth);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($calmonthsID, $months, $value, $years);
}else{
$query = "SELECT calmonthsID, months, value, years from calmonths WHERE years=? ORDER BY calmonthsID ASC";
$stmt = $connQlife->prepare($query);
$stmt->bind_param('s', $yvalue);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($calmonthsID, $months, $value, $years);
}
echo "<option>- Select Month -</option>";
while($stmt->fetch()) {
echo '<option value='.$value.'>'.$months.'</option>';
} $stmt->close();
Когда указанный выше запрос выполняется на странице, раскрывающийся список заполнен месяцами с мая по сентябрь. Пропуск с октября по декабрь.
Когда я принял $curmonth = date('n');
за 10
, я получил выпадающее меню с месяцами с февраля по декабрь. Опуская январь.
Снова Когда я предположил, что $curmonth = date('n');
будет 11
, я получил выпадающий список, заполненный месяцами с февраля по декабрь. Исключая январь и октябрь.
И когда я предполагал 12
, отсутствовали январь, октябрь и ноябрь.
Но выполнение всех этих запросов непосредственно в базе данных дало желаемые результаты. Поэтому я озадачен тем, что не так или что происходит при выполнении запросов в Php.
Это данные базы данных:
calmonthsID months value years
1 January 1 2020
2 Febuary 2 2020
3 March 3 2020
4 April 4 2020
5 May 5 2020
6 June 6 2020
7 July 7 2020
8 August 8 2020
9 September 9 2020
10 October 10 2020
11 November 11 2020
12 December 12 2020
13 January 1 2021
....