11.7.2. Фильтрация наборов записей

Для правильной работы калькулятора требуется извлечь стоимость (для взрослых и детей) не на все путешествия и не на первое в списке, а на то, которое выбрал посетитель.

Что для этого нужно? Пользователь выбирает в списке тур и подтверждает корректность заполнения формы. Значение tourID, соответствующее этому путешествию, добавляется на страницу tourprice_processor.asp в качестве переменной формы. Таким образом, при отправлении запроса в базу данных следует составить приблизительно такую конструкцию:

Извлечь цену_для_взрослых (basePriceAdult) и цену_для_детей (basePriceChild) из tbl_tours,

где tourID равно tourID, выбранному посетителем в форме.

312. Откройте tourprice_processor.php. С помощью панели Bindings откройте диалоговое окно Recordset.

313. В поле Name введите rs_tourprices_filtered. В списке Connection выберите пункт conn_enisey, а в списке Table – tbl_tours. В разделе Columns укажите вариант Selected и выберите tourID, tourName, basePriceAdult и basePriceChild. Запрос возвращает значения четырех указанных полей из всех 19 записей таблицы tbl_tours (чтобы это проверить, следует нажать кнопку Test. Но от запроса требуется, чтобы он возвращал только данные путешествия, выбранного посетителем в форме.

314. В разделе Filter введите следующую формулу: tourID = From Variable tourName, выбрав соответствующие значения для каждого из четырех полей. Формула означает, что необходимо извлечь всю указанную информацию, но только из записи, соответствующей значению, указанному посетителем в форме.

315. Нажмите Test. Введите число 9 в диалоговое окно Please Provide a Test Value и нажмите OK. На этот раз требуется указать контрольное значение для проверки. Причина состоит в том, что для выполнения запроса требуется значение, полученное из формы, но в среде разработки этого значения не существует. Поэтому и появляется диалоговое окно, в которое вводится значение.

316. Полученный в итоге список будет состоять из одного пункта – Machu Picchu.

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