web платформа - 2018 : rapid application development (RAD) начинающего web-разработчика!


45 минут и страница просмотра Базы Данных готова!


Страна Регионы страны Населенный пункт
 
 
 
Австрия
Азербайджан
Ангуилья
Аргентина
Армения
Арулько
Беларусь
Белиз
 
 
Разработчики любят показывать среду или платформу для разработки на примере создания просмотра базы данных. Это очень круто, когда щелк-щелк и готово! Давайте посмотрим пример справа. Парой щелчков, конечно, не обошлось, но на чистом PHP пришлось бы здорово поработать. Однако механизм PHP-функций позволил сократить объем кода и количество затраченного времени, так как платформа берет на себя общение со страницей и анализ того, что на ней следует обновить.

Пощелкайте по таблице, посмотрите как это работает! Теперь о том, как это сделано. Порции данных получаются с сервера, а не хранилища браузера. Итак, сначала был использован встроенный администратор баз данных SQLite.


В котором была создана БД 'geo' и три таблицы: country, region и city.


После чего произведен импорт данных из CSV-файла с рабочего компьютера. Данные должны быть в UTF8!!!



Затем на страницу была добавлены 7 PHP-функций. Одна, стартовая {PHP= {startgeo}} в начало -она только выводит стили для таблицы и устанавливаем стартовое значение строки с которой надо выбирать страны 


Остальные PHP-функции размещены в таблице

Страна Регионы страны Населенный пункт
{PHP= {uprcountry}} {PHP= {regupr}}  {PHP= {uprsity}}
{PHP= {country}} {PHP= {region}} {PHP= {sity}}

Следует отметить, что функции uprcountry, regupr и uprcity выводят элементы управления и отличаются только именами переменных, а алгоритм одинаков. Также и функции country, region, sity - выводят список из таблиц базы данных и отличаются только именами переменных, а алгоритм одинаков. Поэтому давайте рассмотрим только две из них: regupr и region. Но перед этим напоминание - PHP-функции выполняются только если изменяются заданые для них входящие параметры. Поэтому, если входящие параметры для функций не изменились, то они не вычисляются и система не изменяет содержание на странице, где эти функции расположены. Т.е., если изменяются входящие параметры для region и regupr, то функции country и uprcountry система не вычисляет, а вычисляет только те функции где изменились входящие параметры.

Функция region имеет входящие параметры, источним которых является  uprcountry


Функция regupr имеет входящие параметры, источним которых является  region


Таким образом, система сама установит порядок вычисления: сначала region, а затем regupr - в таблице они расположены исключительно для удобства управления данными. Прежде чем рассмотреть текст PHP-функции region, остановимся на входящей переменной newSelectCountry, источником является selectCountry из функции uprcountry, но там она задана равной нулю и ничего более. При щелчке на поле таблицы стран нужное значение устанавливается JavaScript-ом, который вызывает встроенную функцию getPHP.

Этот скрипт при выдаче страницы будет в нее вставлен. Каждый раз, когда пользователь будет выбирать страну, щелкнув по полю таблиц стран, система будет вызывать JS-функцию getPHP, передавая ей ID выбранной страны, чтобы установить переменную selectCountry. Переменная selectCountry является источником значения для входящей переменной newSelectCountry, которая и указывает, регионы какой страны следует выводить. Повторение-мать учения. Каждый раз, когда меняются входящие переменные, система производит перевычисление функций, которые ими пользуются. Т.е., каждый раз, когда пользователь будет щелкать на какой-либо стране, отличной от текущей, будет изменяться значение newSelectCountry, а значит будет перевычислена PHP-функция region. Давайте теперь рассмотрим текст PHP-функции region


Рассмотрим по порядку. Если никакая страна не выбрана, то и newSelectCountry равна нулю и выводить регионы не надо. Если страна выбрана, то вызывается открытие базы geo. Не следует думать, что openBase каждый раз открывает базу. Посмотрите на текст функции startGeo - там тоже вызывается openBase("geo"). Именно там база и откроется, а в рассматриваемой функции будет использована открытая, если она окрыта. Но ведь может быть и не открыта! Почему? Дело в том, что при щелчке на стране, вызывая изменение newSelectCountry инициируется перевычисление функций по порядку. Те, которые не имеют измененных входящих переменных, выполняться не будут, а значит и базу некому открывать и она не будет активна, когда дело дойдет до перевычисления рассматриваемой функции region. Проверка на открытие базы - признак хорошего тона.
Далее следует запрос к базе - выводить регионы по 8 штук, принадлежащие стране с ID=newSelectCountry, начиная со строки firstRegionRow. Значение firstRegionRow может быть изменено пользователем при щелчке на элементы управления, которые формируются PHP-функцией regupr

Тут мы снова видим, что по щелчку на элементе управления вызывается getPHP, которая меняет входящие параметры для функции region, что заставляет ее перевычисляться, выдавая новую порцию регионов, а система обновляет при этом область на странице, где и располагаются регионы. Значения nextRegionRow и prevRegionRow были получены от функции region и при щелчке вызывают изменение firstRegRow, которая является источником входного параметра для функции region. Меняется firstRegRow - перевычисляется функция region, выдавая новую порцию данных, которые система помещаяет в нужную область страницы. Как видите все просто, если заранее продумано! И 45 минут складываются из 25 минут продумывания и 20 минут набора текстов и настройки системы.


WEB-платформа для владеющих PHP
» инструмент ускоренной разработки <IMG>-вых сайтов!