Запись данных в БД из сложной таблицы

dirol

Новичок
Запись данных в БД из сложной таблицы

Добрый день.
Чтобы было понятно немного дам вводную.
И так, к примеру, есть несколько гостиниц.
У каждой гостиницы свои цены на проживание (которые так же отличаются в зависимости от сезона), различные название номеров.
Необходимо разработать такой функционал, который бы позволял вводить название номеров и их стоимость в зависимости от сезона.

Как делаю я....

Для начала менеджер заполняет простую форму, в которой указывает какое количество типов номеров есть в гостинице (Стандарт, Люкс, например) и сколько разделений по сезонности имеется (например, лето, осень, НГ и т.д.)
Выглядит этот форма так:
PHP:
<form action="" method="GET" name="form1">
Количество номеров: <input type="text" name="room">
Количество периодов: <input type="text" name="period">
<input name="step2" type="submit" id="step2" value="Далее">
</form>
На следующем этапе я формирую таблицу для ввода данных. Выглядит она вот так вот, если надо, могу привести код.



А вот на следующем шаге, т.е. на записе этих данных непосредственно в базу, я стопорюсь.
Очень прошу совета и указания направления, куда думать-то дальше?

Структура таблицы БД следующая:
idprice | idhotel | period | room | price
 

Mols

Новичок
А в чём проблема то?
Если на вскидку я бы делал так.
1. Добавление общих данных о гостинице.
2. зная Ид гостиницы - добавил типы комнат.
3 зная ид гостиницы добавил периоды.
4.зная ид типов комнат и периодов добавил цены.

Ну таблицы соответсвенно "отель", "комната", "период", "цена" с соответсвующими ключами. Для таблицы "цена" будет составной ключ "ид_комната + ид_период".

Если проблема в том как это всё воткнуть в форму и потом получить обратно в PHP, то можно просто построить для инпута с ценой соответствующее имя. например вида
Код:
< input type="text" name="hotel[ид_комнаты][ид_периода]">
При сабмите получаем в PHP массив. и всех делов.

-~{}~ 18.01.09 13:46:

мда. Ну естесвенно предполагается, что периоды для всех типов комнат одинаковые (в пределах отеля). Если нет - то чуток по другому надо.
 

dirol

Новичок
Mols
проблема в том, что я не знаю как обработать массив :)

Вот результаты обхода массива по циклу.
nameperiod1 => Лето
nameperiod2 => Осень
nameperiod3 => Зима
nameroom1 => Стандарт
price11 => 3000
price21 => 2500
price31 => 2000
nameroom2 => Люкс
price12 => 5000
price22 => 4000
price32 => 3000

Как мне записать в БД, например, значение
Лето Стандарт 3000
 

dirol

Новичок
Mols, можете подсказать тогда как?
Вся моя проблема именно в этом пока...
 

Mols

Новичок
Ну в моём первом посте тот вариант, который я считаю правильным. На первой страничке вводить данные по отелю, потом на второй страничке вводить данные по номерам, потом по периодам(тут конечно придётся поковырять JS, чтобы можно было добавить произвольное число периодов и номеров). Дело в том, что 100% станет вопрос о хранении дополнительных данных о номерах (типа квадратуры, наличия ТВ, кондиционера, кол-ва комнат и т.д) и их лучше хранить в отдельной таблице. Тоже самое и о периодах, недостаточно же только названия. Наверняка придётся указывать начало и конец периода с точностью до дня. Так что эти данные лучше тоже добавлять на отдельной страничке. А после того, как будут добавлены(в базу) данные о периодах и комнатах - уже строить эту "сложную" таблицу.
Если же надо просто делать исходя из того, что написали Вы, то хотябы так переменную называйте price_1_2, чтобы потом эту строку порезать по разделителю. В принципе не проблема, но потом грабли будут. Когда надо будет хоть что-то добавить о номере или периоде. Сложно такое количество данных будет с одной странички впихнуть. И для Вас и для пользователя.
 

dirol

Новичок
Mols, объясните, пожалуйста, мне в базу пытаться сразу "запихнуть" данные из этой таблицы всем скопом с помощью извращенного цикла или лучше вставлять данные раздельно, например, сначала типы номеров, потом периоды, а потом цены.
Или как?
 

Mols

Новичок
делайте как Вам удобно. Своё мнение по этому поводу я уже полностью изложил.
 
Сверху