if(mysql_num_rows($resultDate) > 0)
{ // создаём многомерный массив, чтобы получить возможность сосчитать кол-во дней между полученными периодами
while ($myrowDate = mysql_fetch_array($resultDate))
{
echo $myrowDate['id_hotel_number'].") ".$myrowDate['begSea'].' - '.$myrowDate['endSea'].'<br>';
$startDate[$myrowDate['id_hotel_number']][] = $myrowDate['begSea'];
$finalDate[$myrowDate['id_hotel_number']][] = $myrowDate['endSea'];
$id[$myrowDate['id_hotel_number']][] = $myrowDate['id_hotel_number'];
$id_season[$myrowDate['id_hotel_number']][] = $myrowDate['id'];
}
// обрабатываем массив для подсчёта кол-ва дней между периодами
foreach($id as $key => $idArr)
{
foreach($idArr as $keyId => $value)
{
// Узнаём кол-во квот у каждого номера отеля.
// Если кол-во квот == 1, тогда обработать квоту этого номера отеля с квотами допущенных номеров, кол-во дней
// между которыми не больше одного.
echo '------'.$value.'<br>';
//echo count($idArr); // кол-во квот в одном номере
if(count($idArr) == 1)
{
$arrValueId[$key] = $key; // создаём массив с id номеров отелей, кот. допущены для дальнейшей проверки.
}
}
echo $key.'<br>';
array_pop($idArr); // удаляем последний id, чтобы не считало пустые значения
array_pop($finalDate[$key]); // удаляем последнее значение из конечной даты
array_shift($startDate[$key]); // удаляем первое значение из начальной даты
// в этом цикле ведётся подсчёт между периодами дат
foreach($idArr as $keyId => $value)
{
$finalDate[$key][$keyId].' - '.$startDate[$key][$keyId].', ';
$dateInitial = $finalDate[$key][$keyId]; // входящее значение ф-ции подсчёта кол-ва дней
$dateFinal = $startDate[$key][$keyId]; // входящее значение ф-ции подсчёта кол-ва дней
echo amountDaysBetweenDate($dateInitial,$dateFinal).' день) '.$key.'<br><br>';
// если кол-во дней между периодами дат не более 1, тогда показать номер
// кол-во дней выполняем через ф-цию
if(amountDaysBetweenDate($dateInitial,$dateFinal) <= 1)
{
$flr .= "id = '$key' OR "; // позволяем извлечь из БД этот номер в отеле (id_hotel_number)
$arrValueId[$key] = $key; // создаём массив с id номеров отелей, кот. допущены для дальнейшей проверки.
}
}
}
// получаем id ценового сезона в БД, чтобы извлечь даты и проверить входят ли они в выбранный диапазон дат бронирования
foreach ($arrValueId as $keyArrValueId)
{
echo '- '.$keyArrValueId.'<br>';
foreach($id_season[$keyArrValueId] as $keyIdSeason => $valueIdSeason)
{
echo $valueIdSeason.'<br>';
$season .= "$valueIdSeason,"; // id ценового сезона в БД (формат 3,4,7,8,)
}
}
}
}
echo 'id Ценового сезона '.$season = substr($season, 0, strlen($season)-1); // удаляем последнюю запятую из списка с id ценового сезона
// Выбираем id_hotel_number из mysql для дальнейшей выборки свободных номеров отеля
$result_id_hotel_number = mysql_query("
SELECT `price_season`.id_hotel_number,
min(`price_season`.begin_season) AS min,
max(`price_season`.end_season) AS max,
hotel_number.category
FROM `price_season`,hotel_number WHERE `price_season`.id IN (".$season.") AND
hotel_number.id = price_season.id_hotel_number
GROUP BY id_hotel_number HAVING min <= '2012-04-04' AND max >= '2012-04-07'",$db);
}
}
while($myrow_id_hotel_number = mysql_fetch_array($result_id_hotel_number))
{
echo '<br>'.$myrow_id_hotel_number['id_hotel_number']. ' - ' .$myrow_id_hotel_number['category'];
}