1
Федеральное агентство по образованию
Нижегородский государственный университет им. Н.И. Лобачевского
Национальный проект «Образование»
Инновационная образовательная программа ННГУ. Образовательно-научный центр
«Информационно-телекоммуникационные системы: физические основы и
математическое обеспечение»
В.Л.Тарасов
ПРОГРАММИРОВАНИЕ БАЗ ДАННЫХ ДЛЯ ИНТЕРНЕТА
Учебно-методические материалы по программе повышения
квалификации «Применение программных средств в научных
исследованиях и преподавании математики и механики»
Нижний Новгород
2007
2
Учебно-методические материалы подготовлены в рамках ин-
новационной образовательной программы ННГУ: Образовательно-
научный центр «Информационно-телекоммуникационные
системы: физические основы и математическое обеспечение»
Тарасов В. Л. Программирование баз данных для Интернет. Учебно-методический мате-
риал по программе повышения квалификации «Применение программных средств в науч-
ных исследованиях и преподавании математики и механики е». Нижний Новгород, 2007,
100 с.
Рассматриваются современные технологии использования баз данных в Интернете, ко-
торые основаны на использовании языка программирования PHP и СУБД MySQL. Описан
процесс установки на компьютер веб-сервера Apache, интерпретатора PHP и MySQL.
Кратко изложены приемы программирования на PHP по созданию динамических html-
страниц, работа с MySQL в режиме командной строки, доступ к базе данных MySQL
средствами PHP. Приведены иллюстративные примеры.
Тарасов В.Л., 2007
3
ОГЛАВЛЕНИЕ
1. Технолигии передачи и обработки информации в интернет .............................................. 5
1.1. Статические HTML страницы ....................................................................................... 5
1.2. Клиентские технологии ................................................................................................. 7
1.3. Средства поддержки серверных сценариев .................................................................. 7
1.4. Области применения средств поддержки серверных сценариев ................................. 8
2. Подготовка к работе с системой PHP ................................................................................ 10
2.1. Интернет-серверы ........................................................................................................ 10
2.2. Сервер Apache .............................................................................................................. 10
2.3. Установка сервера Apache в ОС Windows .................................................................. 10
3. Язык программирования php ............................................................................................. 14
3.1. Установка интерпретатора PHP .................................................................................. 14
3.2. Дескрипторы PHP ........................................................................................................ 15
3.3. Первая программа........................................................................................................ 15
3.4. Синтаксис языка PHP .................................................................................................. 16
3.5. Комментарии................................................................................................................ 17
3.6. Блоки ............................................................................................................................ 17
3.7. Переменные.................................................................................................................. 17
3.8. Область определения переменной .............................................................................. 18
3.9. Константы .................................................................................................................... 19
3.10. Типы данных .............................................................................................................. 19
3.11. Вывод данных ............................................................................................................ 21
3.12. Логические выражения.............................................................................................. 22
3.13. Операторы сравнения ................................................................................................ 22
3.14. Инструкция ветвления ............................................................................................... 23
3.15. Инструкция switch...................................................................................................... 23
3.16. Циклы ......................................................................................................................... 23
3.17. Функции ..................................................................................................................... 26
4. Передача информации между страницами........................................................................ 28
4.1. Метод GET ................................................................................................................... 28
4.2. Метод POST ................................................................................................................. 30
4.3. Калькулятор физических нагрузок.............................................................................. 32
5. Строки и массивы в PHP .................................................................................................... 35
5.1. Подстановка значений в строки .................................................................................. 35
5.2. Индексация символов .................................................................................................. 35
5.3. Операции со строками ................................................................................................. 35
5.4. Строковые функции..................................................................................................... 36
5.5. Калькулятор физических нагрузок.............................................................................. 38
5.6. Массивы ....................................................................................................................... 41
5.7. Создание массивов....................................................................................................... 41
5.8. Выборка значений........................................................................................................ 42
5.9. Многомерные массивы ................................................................................................ 42
5.10. Получение сведений о массивах ............................................................................... 43
5.11. Итерация..................................................................................................................... 43
5.12. Калькулятор физической нагрузки с переключателем............................................. 45
5.13. Калькулятор физической нагрузки с флажками ....................................................... 48
5.14. Калькулятор физической нагрузки с многомерными массивами ............................ 52
6. Обработка числовых данных ............................................................................................. 58
4
6.1. Числовые типы............................................................................................................. 58
6.2. Математические операции .......................................................................................... 58
6.3. Математические функции ........................................................................................... 59
6.4. Выработка случайных чисел ....................................................................................... 59
6.5. Калькулятор физических нагрузок с вычислениями.................................................. 60
7. Субд MySQL ....................................................................................................................... 65
7.1. Установка MySQL в Windows ..................................................................................... 65
7.2. Администрирование учетных записей MySQL .......................................................... 70
7.3. Программа PHPMyAdmin ............................................................................................ 74
8. Функции PHP для работы с СУБД MySQL ....................................................................... 76
8.1. Типы данных MySQL .................................................................................................. 76
8.2. Функции PHP для работы с MySQL............................................................................ 78
9. Отображение результатов запросов в таблицах ................................................................ 81
9.1. Таблицы HTML и таблицы базы данных.................................................................... 81
9.2. Создание образцов таблиц........................................................................................... 81
9.3. Программа отображения одной таблицы.................................................................... 85
9.4. Сложные отображения................................................................................................. 90
9.5. Ввод данных в базу данных с помощью простой формы........................................... 95
10. Литература ........................................................................................................................ 98
5
1. ТЕХНОЛОГИИ ОБРАБОТКИ ИНФОРМАЦИИ В ИНТЕРНЕТ
Основное объемы информации циркулирующей в сети Интернет, передается в направ-
лении от серверов на клиентские компьютеры. Как правило, информация обрабатывается
перед ее отображением в программах просмотра, причем обработка может выполняться
как на сервере, так и на клиентском компьютере. В данной главе обсуждаются данные
способы обработки.
1.1. Статические HTML страницы
После того как клиентский компьютер передает с помощью протокола HTTP запрос на
получение этой страницы серверному компьютеру по Интернет или по внутренней сети,
сервер передает в ответ весь текст, обнаруженный в требуемом файле (рис. 1).
Рис.1. Передача простого запроса и ответа по протоколу HTTP
Вслед за тем как данные страницы поступают на клиентский компьютер, браузер вы-
полняет все от него зависящее для вывода страницы на экран, учитывая при этом то, ка-
кой именно код содержится в файле с данными страницы, каковы предпочтения пользова-
теля, каковы размеры экрана, и другие факторы. В случае использования статических
страниц содержимое файла HTML на сервере полностью совпадает с исходным кодом
страницы, поступившим на клиентский компьютер, что предоставляет следующие пре-
имущества:
6
Этот код может быть правильно отображен в любом браузере.
Может быть легко обеспечено адекватное отображение этого кода в устройствах
многих других типов.
Каждый запрос выполняется быстро, с использованием минимальных ресурсов.
Язык HTML является простым в изучении, а автоматическое формирование это-
го кода можно обеспечить очень легко.
Разработчики программ для Web имеют возможность быстро вносить неболь-
шие изменения в отдельные страницы.
Безусловно, статический код HTML имеет также свои недостатки:
При использовании этого кода трудно управлять процессом создания, оформле-
ния и компоновки страницы.
По мере увеличения количества страниц сложности, связанные с применением
статического кода HTML, стремительно возрастают.
Такой код не обеспечивает применения достаточно выразительных интерактив-
ных средств.
При использовании статического кода HTML затрудняется задача включения
значимых метаданных о странице.
Применение статического кода HTML не позволяет успешно отображать быстро
изменяющееся информационное наполнение или обеспечивать персонализацию
(учет потребностей конкретного пользователя).
Для преодоления указанных ограничений были разработаны многочисленные дополни-
тельные технологии, включая языки JavaScript и VBScript, каскадные таблицы стилей,
применяемые в клиентском коде аплеты Java, а также средства поддержки серверных сце-
нариев, предоставляющие такие возможности, как подключение к базе данных
Основной вопрос, на который можно найти ответ, намечая путь решения любой от-
дельно взятой задачи Web-узла, состоит в следующем: "Где должна осуществляться обра-
ботка — на клиенте или на сервере?"
Динамические HTML-страницы позволяют решать более широкий круг задач по срав-
нению со статическими. В качестве динамических должны рассматриваться почти любые
страницы, код которых содержит какие-либо конструкции, отличные от конструкций про-
стого, стандартного кода HTML. В клиентском коде под динамическим информационным
наполнением могут подразумеваться мультимедийные презентации, прокручиваемые за-
головки, автоматически обновляющие сами себя страницы или элементы, способные ис-
7
чезать и появляться. С другой стороны, в серверном коде под динамическим информаци-
онным наполнением, вообще говоря, подразумевается содержимое страницы, сборка ко-
торого происходит оперативно, сразу после поступления запроса на передачу страницы.
Например, если на странице отображаются текущая дата и время ее формирования, это
означает, что содержимое страницы изменяется от одного случая ее формирования к дру-
гому, и поэтому такая страница является динамической.
1.2. Клиентские технологии
Наиболее часто дополнения к простому коду HTML реализуются после поступления
страницы в клиентское приложение. К этим дополнениям относятся такие расширения,
обеспечивающие лучшее форматирование, как каскадные таблицы стилей и средства Dy-
namic HTML а также клиентские языки сценариев, такие как JavaScript и VBScript, аплеты
Java и объекты Flash. Средства поддержки всех этих технологий должны быть встроены в
программное обеспечение Web-браузера.
Клиентские технологии имеют ряд недостатков. Их поддержка полностью зависит от
браузера, а между браузерами разных производителей могут быть большие отличия. На-
пример, браузер FireFox не поддерживает JavaScript. В браузерах часто имеется возмож-
ность отключать поддержку потенциально опасных технологий, в частности того же
JavaScript. Единственное, в чем разработчик программ для Web может быть уверен, – это
то, что пользователи всегда могут просматривать простой текстовый код HTML.
Клиентские технологии не позволяют выполнять какие-либо технологии, требующие
подключения к серверу базы данных. Например, язык JavaScript не позволяет динамиче-
ски формировать раскрывающиеся списки с учетом данных, хранящихся в базе данных.
Достоинством клиентских технологий является высокая скорость реакции на действия
пользователей, так не требуется передавать данные на сервер.
Аплеты Java (клиентские приложения Java) значительно меньше зависят от браузера.
Аплеты (applet – уменьшительное от application) представляют собой небольшие, но за-
конченные приложения Java, доставляемые клиенту по Интернет. Аплеты не взаимодей-
ствуют непосредственно с ОС, а выполняются виртуальной машиной Java (Java virtual
Machine – JVM). JVM входит в комплект большинства браузеров или может быть загру-
жена отдельно.
1.3. Средства поддержки серверных сценариев
Схематическое представление потока данных, поддерживаемого средствами серверных
сценариев, показано на рис. 2.
8
Рис.2. Задачи, решаемые в серверном коде
Средства поддержки серверных сценариев для Web в основном применяются для под-
ключения Web-узлов к таким вспомогательным серверам, как серверы баз данных. Благо-
даря использованию этих средств появляется возможность поддерживать двухстороннюю
связь описанных ниже типов.
От сервера к клиенту. Сборка Web-страниц может осуществляться на основе выход-
ных данных, полученных из вспомогательного сервера.
От клиента к серверу. На сервере может осуществляться обработка информации вве-
денной пользователем.
Программные продукты поддержки серверных сценариев состоят из двух основных
компонентов — языка сценариев и машины выполнения сценариев (которая может быть
встроена или не встроена в программное обеспечение Web-сервера). Такая машина обес-
печивает синтаксический анализ и интерпретацию страниц, написанных на определенном
языке.
1.4. Области применения средств поддержки серверных сценариев
Код, выполняемый в клиентской программе (в браузере), называемый также клиент-
ским кодом, в основном обеспечивает создание пользовательского интерфейса, а код, вы-
полняемый в серверной программе (серверный код), служит главным образом для обра-
ботки данных. В последнее время средства поддержки серверных сценариев находят все
9
более широкое распространение, поэтому в распоряжение пользователей Web все чаще
поступают динами чески сформированные HTML-страницы.
Но серверные сценарии практически не применимы для создания сложных графиче-
ских интерфейсов с трехмерными изображениями, действующих в реальном времени. Чем
более быстрый отклик должно обеспечивать приложение и чем шире в нем должны при-
меняться графические средства, тем меньше для этой цели подходит язык РНР. Дело в
том, что в настоящее время из-за низкой пропускной способности каналов Web невоз-
можно достаточно быстро передавать необходимые для этого объемы информации.
С другой стороны, языки серверных сценариев, такие как РНР, являются идеальным
средством осуществления многих полезных функций, а также позволяют развертывать в
Web чрезвычайно важные узлы и системы.
10
2. ПОДГОТОВКА К РАБОТЕ С СИСТЕМОЙ PHP
Программа-сервер и программа-клиент могут выполнятся на разных компьютерах или
на одном и том же компьютере. Компьютер, на котором выполняются программы-серверы
называются часто сервером.
Web-узел с поддержкой PHP может находится на сервере, сопровождаемом самостоя-
тельно или на сервере, предоставляемом службой Web-хостинга.
2.1. Интернет-серверы
Интернет-серверы – это программное обеспечение, которое предоставляет файлы, хра-
нящиеся на дисках сервера клиенту по запросу через Интернет.
В состав Windows входит Internet Information Services (IIS), который обеспечивает под-
держку Web, FTP, FrontPage, транзакций, Active Server Pages (ASP) и подключений к ба-
зам данных. Однако на большинстве Интеренет-узлов используется сервер Apache, кото-
рый распространяется в исходных кодах и имеет версии для различных операционных
систем, в том числе для Windows, Unix, Linux.
2.2. Сервер Apache
Apache - это web-сервер, один из наиболее распространенных, безопасных и удобных.
Он позволяет создавать динамические сайты с использованием языков программирования
(например, таких как Perl или PHP), а также сайты с использованием директив SSI,
(Server-Side Includes - включения на стороне сервера). SSI – простейший, но в то же время
чрезвычайно мощный инструмент поддержки больших наборов. Существуют версии
Apache как под Windows так и под Unix-платформы.
Apache
распространяется
бесплатно,
его
можно
скачать
по
адресу
http://www.apache.org. Там же находится полная электронная документация. Apache суще-
ствует в версиях 1 и 2. Для Windows, доступны для загрузки дистрибутивы в виде exe- или
msi-файла (MSI - Microsoft System Installer), для Unix-платформ файлы имеют расширение
.tar.gz
2.3. Установка сервера Apache в ОС Windows
2.3.1. Предварительная подготовка
Рассмотрим
процесс
установки
Apache
на
примере
использования
файла
apache_2.2.4-win32-x86-no_ssl.msi
. Его размер 4447744 байт. Из названия файла видно, что
это32 разрядная версия 2.2.4 для Windows.
Сочетание букв
no_ssl
означает отсутствие поддержки SSL (Secure Sockets Layer –
протокол защищенных соединений). Использование SSL исключает перехват информа-
11
ции, передаваемой по сети, дает возможность проверить идентичность узла и идентич-
ность посетителя на узле. Используется шифрование с открытым ключом для проверки
подлинности сервера и обмен новыми ключами. Далее для обмена применяется шифрова-
ние с закрытым ключом.
Apache может быть установлен в версии Windows 98 и старше.
2.3.2. Установка Apache
Для установки Apache просто запускаем файл
apache_2.2.4-win32-x86-no_ssl.msi
. Нач-
нет работать MSI installer. В процессе работы мастера установки выводятся несколько
окон, в том числе окно с приветствием, окно с лицензионным соглашением, на котором
надо принять условия лицензии.
Далее следует диалог, содержащий описание сервера. В следующем окне (рис. 3) необ-
ходимо задать некоторые настройки веб-сервера.
Рис. 3. Настройки сервера
Network Domain – имя вашего сервера DNS, в котором ваш веб-сервер будет зарегист-
рирован. Например, если ваш полный домен выглядит как www.somehost.com, вам следует
указать здесь somehost.com. В случае, если вы желаете использовать веб-сервер исключи-
тельно для личных нужд только на локальном компьютере, — укажите здесь домен
localhost.
Server Name. Полное имя вашего сервера. Исходя из приведенного примера, здесь сле-
дует указать www.somehost.com. Опять же, если вы предполагаете использовать Apache
исключительно на локальной машине — укажите localhost.
12
Administrator's Email Address. Адрес администратора вашего сервера. Этот адрес бу-
дет отображаться во время ошибок работы веб-сервера, никакой другой функции на этот
адрес не возложено.
Следующая опциональная настройка "Install Apache HTTP Server 2.2 programs and
shortcuts for:" позволяет задать, как Apache будет функционировать в вашей системе – ис-
ключительно под учетной записью текущего пользователя, либо для всех пользователей
вашего компьютера. Мы выбрали второй вариант — для всех пользователей.
На шаге следующем шаге выбираем тип установки (рис. 4).
Рис. 4. Выбор типа установки
Можно о выбрать один из 2-х типов установки.
Обычная установка (Typical). Обычная установка позволяет пропустить следующий
шаг и приступить непосредственно к установке веб-сервера. При этом будут установлены
лишь основные компоненты программы, исключая файлы заголовков и библиотеки для
компиляции модулей. Установка будет произведена в папку, заданную по-умолчанию (как
правило C:\Program Files\Apache Software Foundation\Apache2.2). Для начала лучше огра-
ничиться этим вариантом установки.
Выборочная установка (Custom). При выборе данной опции, на следующем шаге вы
можете выбрать, какие компоненты следует установить и задать путь к папке установки
при необходимости.
В случае успешного завершения установки мастер установки сообщит об этом в от-
дельном окне.
Для того, чтобы протестировать работу веб-сервера, запустите ваш браузер и наберите
в адресной строке
http://localhost/
. Если вы видите страницу с сообщением "It works!" —
значит вам действительно успешно удалось установить веб-сервер (рис. 5).
13
Рис. 5. Испытание работы Web-серверf
14
3. ЯЗЫК ПРОГРАММИРОВАНИЯ PHP
Название PHP является рекурсивным сокращением от PHP: Hypertext Preprocessor
(препроцессор гипертекста PHP). Первоначально это продукт именовался Personal Home
Page Tools (инструменты создания домашних страниц).
PHP – это серверный язык сценариев, который может быть внедрен в код HTML для
развертывания в браузере. Преобразование программы на PHP в HTML производится на
сервере, по сети передается готовый для просмотра код. Этим PHP отличается от таких
языков сценариев как JavaScript и VBScript, которые выполняются в браузере на клиент-
ской машине. Благодаря выполнению не сервере, программа на PHP может отображать
данные, которые динамически изменяются, например, текущее состояние прайс-листа или
текущие котировки курсов акций. Программа, выполняющаяся на клиенте, не может обра-
титься к базе данных, хранящейся на сервере, так как это опасно.
3.1. Установка интерпретатора PHP
Как и при установке Apache, установку интерпретатора PHP начнём со скачивания по-
следнего свежего дистрибутива со страницы загрузок http://www.php.net/downloads.php
на официальном сайте разработчика.
Рассмотрим установку РНР версии 5 из zip-архива, например, php-5.2.0-Win32.zip, объ-
емов около 9.5 Мб. Распакуем его в папку C:\PHP. На этом установка закончена.
3.1.1. Установка PHP в качестве модуля
Установка PHP в качестве модуля немного повышает быстродействие, так как модуль
PHP загружается один раз при запуске Web-сервера
При установке PHP в качестве модуля настройки из php.ini читаются один раз при за-
пуске Web-сервера. Поэтому при внесении изменений в php.ini необходимо перегрузить
Apache для того, чтобы внесенные изменения вступили в силу.
Для установки PHP найдем в подпапке
conf
папки Apache главный настроечный файл
Apache
httpd.conf
, откроем его на редактирование и удалим символы комментариев (#) со
следующих строк, при необходимости изменив их:
AddType application/x-httpd-php phtml php
LoadModule php5_module c:/php/php5apache2.dll
3.1.2. Проверка работоспособности
В текстовом редакторе создадим файл
info.php
, с одной единственной строкой:
15
Сохраним этот файл в корневом каталоге документов Web-сервера
C:\Program Files\Apache
Software Foundation\Apache2.2\htdocs
.
Рис.6. Информация об инсталляции PHP5
В браузере введем строку
http://localhost/info.php
В окне браузера появится таблица с информацией о настройках PHP, Apache2 и других,
рис. 6, что говорит об успешной установке Apache и PHP.
3.2. Дескрипторы PHP
Код PHP можно непосредственно вставлять в код HTML. Для указания начала и конца
кода PHP используются дескрипторы
php ?>
3.3. Первая программа
В папке
htdocs
поместим файл
first.php
следующего содержания:
My first PHP program
print("Hello, cruel world
\n");
Достарыңызбен бөлісу: |