14:20 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Мне даже неловко о таком спрашивать, но все найденные статьи не помогают, я там ничего не понимаю, потому что в теме я ориентируюсь ровно настолько, чтобы написать свой невнятный курсовик, а этого мало.

Делаю веб-сайт в Visual Studio с подключением БД из Access. Пара вопросов.

1. После авторизации на сайте появляется возможность сделать заказ. Пользователь выбирает из выпадающих списков интересующиее его опции, после чего вся инфа уходит в таблицу Заказы. Как сделать так, чтобы передавалась информация о заказчике? Все, что я придумала, это добавить так же поле со списком всех зарегистрированных пользователй. Но это же какой-то бред, т.к. залогиниться можно под одним аккаунтом, а заказ отправить от другого.

2. Все в том же заказе. Есть таблица Рестораны, состоящая из кода ресторана и его названия. Есть таблица Залы, состоящая из кода зала, названия и кода ресторана (т.е. к одному ресторану может относиться несколько залов, один зал относится только к одному ресторану). Как сделать так, чтобы после выбора ресторана в списке залов отображались только залы, привязанные к этому ресторану?

Желательно, конечно, дать подробный ответ, разжеванный как для дураков, но и хотя бы указание, где об этом написано, и что именно там читать мне тоже очень помогут.

Комментарии
2015-03-02 в 14:31 

Скептичный циник
Миру - мир. А Вам - пломбир!
1. При логине на сайт записывать id текущего юзера куда-нибудь, например, в cookies/session. Следовательно, во всех формах, где нужно "подставить текущего пользователя" не нужно никаких дополнительных полей форм.
2. При выборе ресторана вы знаете его id. Значит, можно получить список залов выбрав только те, у которых id ресторана равно этому id. А какая у вас структура базы? Не видел MSAccess лет десять, но если там есть что-то похожее на SQL, то пр иналичии в таблице залов id ресторана можно сделать так:"SELECT * FROM restaurants_rooms WHERE restaurant_id = {{id ресторана}}".
Ну и так как уровень неизвестен, то задавайте вопросы.

2015-03-02 в 14:56 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Скептичный циник,
1. По первому я точно ничего не знаю. Т.е. про session я вчера читала, нашла, где как раз проставить, чтобы данные оттуда брались, но я не знаю, как туда id записать.
2. Я спрошу вечером, т.к. на работе сейчас и нет перед глазами ничего. Что-то похожее там есть, но я не знаю, где это нужно прописать ) Мб вечером сама найду.

2015-03-02 в 15:13 

Скептичный циник
Миру - мир. А Вам - пломбир!
1. Когда пользователь логинится (в обработчике отправки формы логина/пароля) вы ведь получаете из базы данные пользователя по его логину чтобы сравнить пароль и пустить/не пустить? Вот там же, после успешного логина, можно записать в сессию его данные – id или логин чтобы потом определять кто сейчас работает с сайтом. При нажатии кнопки выход – очищать сессию. Тогда точно будете знать кто на сайте и отличать их от гостей.
1,5. Чтение/запись в сессию различается в разных языках, но суть одна: список ключей с их значениями. Что-то вроде значений переменных или ассоциативного массива, только хранятся они не в коде приложения, а в другом месте. Из поста не понятно на каком языке пишете и, соответственно, ответить не могу. Думаю, на запрос в стиле "How to write session in {{тут_ваш_язык_программирования}}" в гугле будет много информации.
2. Структура базы должна быть такая, чтобы была связь между таблицей ресторанов и таблицей залов. Например, добавив столбец "id ресторана" в таблицу залов. Как его выбрать – на SQL выше написал, но лучше утонить у гугла как оно в Access рабоатет (:

2015-03-02 в 15:29 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Скептичный циник,
1. Если бы я знала, на чем я пишу Х)) SQL там, вроде. Понятно, погуглю )
2. Естественно связь между таблицами в базе есть.
Вот так примерно выглядит моя страница
Есть подозрение, что я не понятно описала задачу. Мне нужно, чтобы пользователь, выбрав в первом списке ресторан A, во втором увидел только залы 1-A, 2-A и не видел 1-B, 2-B и т.д. Т.е. по идее же в вашем коде id ресторана будет меняться в зависимости от выбора пользователя. Выходит, его выбор тоже записывается в сессию и подставляется в залы? оО

2015-03-02 в 16:27 

Скептичный циник
Миру - мир. А Вам - пломбир!
Это смотря как у вас там всё устроено. Вариантов, вообщем-то, немного:
1. Поиск залов ресторана по запросу. Если при выборе ресторана отправляете запрос на сервер для поиска залов, то всё просто – отправляете запрос с id ресторана, выполняете этот sql и отдаёте список залов, у которых посланный id ресторана. Далее подставляете это в форму.
2. Все залы и рестораны сразу вывалены в форму. Тогда тут при клике на селектор ресторана каким-нибудь клиентским js надо вставлять подходящие залы из заранее подготовленного объекта-списка. типа того.
Уже, пожалуй, что-то конкретное можно ответить только если посмотреть конкретный код.

2015-03-02 в 23:03 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Скептичный циник, вот схема БД
Приложенный код мне понятен, но там не JS (
Вот кусок кода, отвечающий за выбор ресторана:


А вот это код всей страницы для отправки заказа:


2015-03-03 в 00:54 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Скептичный циник, с залами разобралась, все работает ) Про сессию почитала, но что-то там все очень сложно =/ Наверное, сдам так. Большое спасибо!

2015-03-03 в 01:14 

Скептичный циник
Миру - мир. А Вам - пломбир!
Омг, VB я последний раз в начальной школе видел (о.0) Читать могу, но писать – вряд ли. Да и винды поблизости нема так что с ним я вряд ли помощник, может, кто более опытный найдётся в треде.

Про сессию нагуглилось чтение и запись, а так же общие сведения. Не то? Выглядит, вроде, очень просто.

2015-03-03 в 01:30 

Кавайный отморозок
Доктор, доктор, я где-то подцепил толерантность!
Скептичный циник, я никак не могу понять, зачем я вообще занимаюсь этим, если все, у кого ни спроси, говорят, что давным давно уже ничего подобного не видели и с этим не работают ((
Да, это похоже на то, что нужно, и выглядит адекватнее, чем то, что находила я )

   

@web-программирование

главная