|
|
|
|
|
для: reimax
(11.12.2011 в 00:42)
| | вопрос решился просто:
$final=array();
foreach($get as $key=>$value)
{
$final[$key]=$flash[$key];
}
$sum = array_sum($final);
|
| |
|
|
|
|
|
|
|
для: Valick
(11.12.2011 в 00:17)
| | считается сумма за три спектакля, а не всегда, потом скидка от него. | |
|
|
|
|
|
|
|
для: reimax
(10.12.2011 в 23:32)
| | В один день 3 спектакля
ну наконец-то :) о таких вещах пишите сразу
теперь еще объясните зачем складывать цену
чтобы окончательно все стало на свои места | |
|
|
|
|
|
|
|
для: Valick
(10.12.2011 в 14:48)
| | как где? В один день 3 спектакля, значит 3 цены. События могут друг друга перекрывать легко. | |
|
|
|
|
|
|
|
для: Valick
(10.12.2011 в 14:48)
| | дата храниться в формате 22-11-2011 поля типа int не подходит. а какой может быть ваш вариант, что предлагаете? может я не правильно понимаю что то... | |
|
|
|
|
|
|
|
для: reimax
(10.12.2011 в 12:10)
| | даже если их будет в 100 раз больше это мизер для БД
что значит диапазоны перекрываются? в один день могут быть две и более цены? тогда где логика?
но даже в таком случае предложенный мной вариант будет лучше, просто нужно чуть дополнить таблицу
и я так и не услышал объяснения почему тип поля для хранения даты varchar, а не date?
судя по коду вы все возможности БД сводите к нулю, используя её тупо для хранения данных
___
поверьте я задаю так много вопросов, потому что хочу вам помочь, а не потому что мне совсем совсем нехрен делать. | |
|
|
|
|
|
|
|
для: Valick
(10.12.2011 в 09:58)
| | не запрос, функция:
$timer = array();
$sql = $DB->Query(" SELECT * FROM datepicker WHERE datepicker_id = '".$getdoc."' ");
while ($temp = $sql->fetchrow()) {
// преобразование даты
$date_elements = split("-", $temp->research_datepicker_start);
$run1 = mktime(0,0,0,$date_elements[1],$date_elements[2],$date_elements[0]);
$date_elements = split("-", $temp->research_datepicker_end);
$run2 = mktime(0,0,0,$date_elements[1],$date_elements[2],$date_elements[0]);
$temp->int = array();
for($i=$run1; $i<$run2; $i += 86400) {
$key = date("d.m.Y", $i);
$temp->int += array($key => $temp->research_datepicker_price);
}
array_push($timer, $temp);
}
// введённые данные
$date_elements = split("-", $_REQUEST['from']);
$run1 = mktime(0,0,0,$date_elements[1],$date_elements[2],$date_elements[0]);
$date_elements = split("-", $_REQUEST['to']);
$run2 = mktime(0,0,0,$date_elements[1],$date_elements[2],$date_elements[0]);
$get = array();
for($i=$run1; $i<$run2; $i += 86400) {
$key = date("d.m.Y", $i);
$get += array($key => "");
}
// поиск цены
$flash = array();
for($i=0; $i<count($timer); $i++) {
$flash += $timer[$i]->int;
}
$result = array_diff($flash, $get);
$sum = array_sum($result);
print_r("<pre>");
print_r($result);
print_r("</pre>");
|
даты событий могут перекрываться, задавать их нужно диапазонами, разворачивать 365 можно строчек, только их в реале будет в разы больше. | |
|
|
|
|
|
|
|
для: reimax
(10.12.2011 в 01:57)
| | ну и расскажите про эти особенности
а так же покажите запрос при помощи которого вы получаете свой массив
__
у меня пока теоретически задача решается тремя запросами, на практике еще не реализовал, но уже видно что геморрой, а вот при хранении цена - день все легко, включая и получение диапазонов дат. | |
|
|
|
|
|
|
|
для: Valick
(10.12.2011 в 01:26)
| | у проекта есть некоторые особенности, и нет возможности так хранить цены... | |
|
|
|
|
|
|
|
для: reimax
(09.12.2011 в 20:59)
| | может проще хранить цену на каждый день?
это всего-лишь 365 строк в год | |
|
|
|
|