Прежде чем начать кодирование, я хочу сначала создать хороший дизайн. В принципе, у меня есть таблица базы данных, заполненная датами, и пользователи, связанные с этими датами (даты указаны в формате sql).Алгоритм MySQL/PHP для количества дней недели/недели (в месяц)
Использование PHP Я хочу, чтобы каждый пользователь вычислил (общее количество), сколько дней они связаны, а также сколько уикэндов они связаны. Мне нужно иметь общее количество за каждый месяц, а также общую сумму. Это необходимо для «запуска» с августа по май.
Я знаю, что я могу определить, является ли день в выходные дни или недели с:
$date = '2007/08/30';
$weekday = date('l', strtotime($date));
Для определения месяца, я могу использовать SQL и использовать случай заявление, например, получить «Октябрь "от" 10 ":
SELECT MONTH(DATE_SPECIFIED);
То, что я не уверен, однако, является процессом, которым нужно пройти. Я мог бы легко получить несколько запросов, но это неэффективно. В идеале я думал о печати результатов в таблице html.
Может ли кто-нибудь предложить какие-либо предложения/советы о том, как вы можете это сделать?
Спасибо.
EDIT:
У меня есть таблица пользователей, и eventcal стол.
Здесь пользователи таблице:
CREATE TABLE `users` (
`fname` varchar(50) NOT NULL,
`lname` varchar(50) NOT NULL,
`role` varchar(75) NOT NULL,
`region` tinyint(4) unsigned default NULL,
`username` varchar(25) NOT NULL,
`password` varchar(75) NOT NULL,
`new_pass` varchar(5) default NULL,
PRIMARY KEY (`username`),
KEY `role` (`role`),
KEY `region` (`region`),
CONSTRAINT `users_ibfk_2` FOREIGN KEY (`region`) REFERENCES `region` (`region`) ON UPDATE CASCADE,
CONSTRAINT `users_ibfk_1` FOREIGN KEY (`role`) REFERENCES `role` (`role`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
А вот eventcal стол:
CREATE TABLE `eventcal` (
`id` int(11) NOT NULL auto_increment,
`region` tinyint(3) unsigned NOT NULL,
`primary` varchar(25) NOT NULL,
`secondary` tinyint(1) NOT NULL,
`eventDate` date NOT NULL,
PRIMARY KEY (`id`),
KEY `primary_2` (`primary`),
CONSTRAINT `eventcal_ibfk_1` FOREIGN KEY (`primary`) REFERENCES `users` (`username`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8
Обратите внимание, что evencal.primary имеет внешний ключ ссылку на users.username ...
Можете ли вы поместить схему дб в? Мой ответ ниже предполагает, что у вас есть таблица пользователей, таблица дат и связь между ними ... – benlumley
Хотя это также сработает, если бы у вас был только пользователь и таблица user_date – benlumley