У меня есть таблица сотрудников, как это
id name dob
1 Vik 1990-01-12
2 Arm 1992-02-08
3 Loki 1992-02-19
4 Ram 1986-11-23
5 Suri 1996-03-02
Сегодня 2015-02-05, теперь я хочу те записи, у которых день рождения с 2015-02-01 по 2015-02-28. Средство вывода будет
2 Arm 1992-02-08
3 Loki 1992-02-19
Я знаком только с Codeigniter, поэтому моя просьба написать свой ответ в соответствии с запросом CI.
SELECT * FROM `employees` WHERE MONTH(dob) = 2 AND (DAY(dob) >= 1 AND DAY(dob) < 29);
Вероятно, лучше извлечь информацию прямо из базы данных, чтобы вам не требовалось собирать все записи и выполнять цикл.
Другой альтернативой примеру @Tpojka является использование функции BETWEEN при использовании MySQL:
SELECT * FROM `employees` WHERE dob BETWEEN $start_date AND $end_date;
Чтобы использовать его в CodeIgniter, вам нужно настроить конфигурацию базы данных, прежде чем вы сможете сделать что-то вроде этого:
$this->db->query('SELECT * FROM `employees` WHERE dob BETWEEN ? AND ?;', array($start_date, $end_date));