посчитать кол-во дней на каждый сезон

Userbanderas

Новичок
Здравствуйте!
Закралась одна задача ко мне, казалось бы несложная, но всё же пока не поддаётся решению! Опыта моего пока ещё маловато!
Опишу принцип задачи:
посетитель сайта выбирает период от и до. Например: с 2012-04-03 до 2012-04-12.
Из бд (mysql) выбирается несколько периодов касающихся этих дат и цена за них:

id_hot begin_date end_date cena
103 2012-04-01 2012-04-05 100
103 2012-04-06 2012-04-20 400
104 2012-04-01 2012-04-05 400
104 2012-04-06 2012-04-10 700
104 2012-04-11 2012-04-15 1200

Нужно посчитать сумму за каждый период, учитывая даты указанные пользователем (от и до).
Т.е. примерно, вот так:

id_hot
103 первая строка с 2012-04-03 до 2012-04-05 это 2 дня * cena(100) = 200
103 вторая строка с 2012-04-05 до 2012-04-12 это 7 дней * cena(400) = 2800 summ(для id_hot 103) 200 + 2800 = 3000
104 третья строка с 2012-04-03 до 2012-04-05 это 2 дня * cena(400) = 800
104 четвёртая строка с 2012-05 до 2012-04-10 это 5 дней * cena(700) = 3500
104 пятая строка с 2012-04-10 - до 2012-04-12 это 2 дня * cena(1200) = 2400 summ(для id_hot 104) 800 + 3500 + 2400 = 5700

Требуются именно суммы за несколько периодов (каждый по своей цене) - для каждого id_hot
Товарищи специалисты, помогите пожалуйста, ни куда не деться от вашей помощи!
 

Beavis

Banned
Ты когда сам начнёшь думать?
Попробуй написать алгоритм как посчитать итоговую цену. Ты же как-то её вручную можешь посчитать?
 

Userbanderas

Новичок
Я согласен с Вами! Итоговую цену я могу посчитать - это не сложно. Я привёл этот пример с итоговой ценой, чтобы было понятно для чего это всё.
Самый сложный вопрос для меня - как сделать так, чтобы
в первом поле id_hot 103 дата начиналась с 2012-04-03 до 2012-04-05
второе поле id_hot 103 дата оканчивалась с 2012-04-05 до 2012-04-12
и т.д. Т.е. как выстроить даты так в таблице, чтобы между ними посчитать кол-во дней?
 

Userbanderas

Новичок
Ну школа может и проходила, а меня как - то стороной это обошло!
Прошу прощения, но может Вы меня не совсем правильно поняли.
Я не могу построить даты в таблице так, чтобы к примеру
id_hot 103 начальная дата была не 2012-04-01, а 2012-04-03 и вторая строка конечная дата id_hot 103 была не 2012-04-20, а 2012-04-12.
Тоже самое и id_hot 104 - первая дата в первой строке начиналась не с 2012-04-01, а с 2012-04-03 и последняя дата в последней строке оканчивалась не 2012-04-15, а 2012-04-12.
 

Userbanderas

Новичок
Хотя возможно причина и кроется в том, что некоторые вещи меня обошли стороной! Но тут дело не только во мне.
 

Beavis

Banned
Ну школа может и проходила, а меня как - то стороной это обошло!
Прошу прощения, но может Вы меня не совсем правильно поняли.
Я не могу построить даты в таблице так, чтобы к примеру
id_hot 103 начальная дата была не 2012-04-01, а 2012-04-03 и вторая строка конечная дата id_hot 103 была не 2012-04-20, а 2012-04-12.
Тоже самое и id_hot 104 - первая дата в первой строке начиналась не с 2012-04-01, а с 2012-04-03 и последняя дата в последней строке оканчивалась не 2012-04-15, а 2012-04-12.
Надо не даты строить в таблице, а загрузить данные в PHP и обрабатывать их в нём.
Пока ты не придумаешь алгоритм (точнее ты его уже придумал, если смог вручную посчитать сумму), нет смысла садиться писать запросы или PHP-код
 

Userbanderas

Новичок
Товарищи, спасибо Вам, что уделили время моей проблеме!
Надо не даты строить в таблице, а загрузить данные в PHP и обрабатывать их в нём.
Пока ты не придумаешь алгоритм (точнее ты его уже придумал, если смог вручную посчитать сумму), нет смысла садиться писать запросы или PHP-код
Beavis, просто я изначально думал всё это в mysql проделать, PHP как - то на второй план отставил. Но т.к. в mysql не хватило ума это сделать, да и времени не так уж много, то последовав Вашему совету, реализовал на PHP.
Спасибо Всем огромное, что обратили внимание!
 
Сверху