4371

Создание динамических сайтов средствами PHP и MySQL

Лекция

Информатика, кибернетика и программирование

PHP и MySQL. Основным достоинством динамических сайтов, по сравнению со статическими, является возможность отделения данных от кода, отвечающего за их визуальное представление. Благодаря такому подходу, можно создавать сайты, формирующие страницы в...

Русский

2012-11-18

80.5 KB

217 чел.

PHP и MySQL.

Основным достоинством динамических сайтов, по сравнению со статическими, является возможность отделения данных от кода, отвечающего за их визуальное представление. Благодаря такому подходу, можно создавать сайты, формирующие страницы в зависимости от запросов посетителей. Однако для того, чтобы создать такой сайт, необходимо организовать хранилище структурированных данных. Это необходимо для того, чтобы программа, формирующая страницы, могла выбирать данные согласно критериям запроса, поступившего от посетителя сайта.

Самым простым способом организации хранилища данных является использование текстовых файлов. Можно хранить данные в одном или нескольких текстовых файлах, а внутри файлов отделять элементы данных друг от друга при помощи символов – разделителей. Такой способ организации данных может быть эффективен при небольшом количестве хранимой и обрабатываемой информации. Однако для того, чтобы оперировать данными, хранимыми в текстовых файлах, необходимо разработать набор подпрограмм для добавления, удаления, модификации и выборки данных. В случае если структура данных будет изменена, подпрограммы управления данными придется переписывать.

Для того чтобы избежать подобных трудностей, можно использовать базы данных. Оперировать данными, занесенными в базу данных (БД), можно при помощи СУБД – системы управления базой данных. СУБД предоставляют интерфейс, при помощи которого можно организовывать базы данных с произвольной внутренней структурой и управлять данными, расположенными в них.

В настоящий момент наиболее широкое распространены еляционные базы данных. Информация в них представляется в виде набора таблиц. Каждая таблица содержит одну или несколько колонок, которые описывают атрибуты данных, а каждая строка таблицы является экземпляром данных. В качестве языка управления базой данных используется язык структурированных запросов SQL.

Схема работы динамического сайта, использующего в качестве хранилища базу данных:

  1.  Браузер посылает запрос веб-серверу на формирование HTML- страницы
  2.  Веб-сервер запускает интерпретатор PHP для выполнения скрипта, формирующего HTML-страницу
  3.  В процессе работы скрипта осуществляется обращение к базе данных для выборки информации, соответствующей параметрам запроса, посланного браузером
  4.  На основе информации, выбранной из базы данных, PHP- скрипт формирует HTML-страницу
  5.  Веб-сервер возвращает браузеру сформированную HTML-страницу
  6.  Браузер интерпретирует HTML-инструкции, содержащиеся в теле полученной страницы, и выводит ее содержимое на экран монитора

В настоящее время для организации хранилища данных веб-приложений наиболее часто используется СУБД MySQL.

MySQL является компактным и простым в эксплуатации сервером баз данных, доступным для платформ Unix, Windows NT, Windows 9x. При функционировании под управлением ОС Unix СУБД использует потоки, что позволяет создать на базе MySQL высокопроизводительный и хорошо масштабируемый сервер баз данных.

MySQL поддерживает стандарты начального уровня ANSI SQL92 и ODBC. Приложения базы данных могут быть реализованы при помощи популярных языков высокого уровня, таких как C, Perl, PHP и другие. СУБД позволяет оперировать таблицами с суммарным объемом данных до 4 Гбайт.

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

mysql_connect("хост[:порт][сокет]", "имя пользователя", "пароль")

Функция получает три входных параметра: хост, имя пользователя и пароль. Хост – имя сервера, на котором установлена СУБД. В случае, если веб-сервер и сервер базы данных работают на одной машине, значение параметра хост имеет значение "localhost". После имени хоста можно так же указать порт и путь к сокету. Это необходимо в случае, если в настройках используются порт и сокет, отличные от установленных по умолчанию.

Имя пользователя – логин пользователя, которому разрешен доступ к СУБД.

Пароль – пароль пользователя, которому разрешен доступ к СУБД.

Функция возвращает идентификатор соединения в случае успеха и значение "ложь" при неудаче. Идентификатор соединения будет использоваться при вызове всех функций, посылающих запросы серверу MySQL.

Если сделать повторный вызов rnysql_connect с теми же аргументами, новое соединение с сервером не будет установлено; будет возвращен идентификатор уже открытого соединения.

Обычно логин и пароль пользователя устанавливаются системным администратором.

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

После завершения работы PHP-программы соединение будет автоматически закрыто. Однако если возникает необходимость закрыть соединение в процессе работы программы, можно воспользоваться функцией

mysql_close(идентификатор соединения)

В качестве параметра функция получает идентификатор соединения, которое необходимо закрыть

После того, как соединение установлено, необходимо выбрать базу данных, с которой будет осуществляться работа. Для выбора активной базы данных предназначена функция

mysql_select_db("имя базы данных",[идентификатор соединения])

Параметрами функции являются имя базы данных и идентификатор соединения. Идентификатор соединения не является обязательным параметром. Поскольку в процессе работы программы, как правило, используется одно соединение, его не обязательно каждый раз указывать в явном виде.

Создать базу данных можно при помощи функции

mysql_create_db("имя базы данных",[идентификатор соединения])

Другой возможностью для создания новой базы данных является посылка запроса "create database" при помощи функции mysql_query, которая будет рассмотрена ниже.

Удалить базу данных со всем ее содержимым можно при помощи функции

mysql_drop_db("имя базы данных",[идентификатор соединения])

Аналогичного результата можно достигнуть путем посылки sql-запроса "drop database".

Одной из важнейших функций является функция отправки SQL-запроса

mysql_query ("запрос",[идентификатор соединения])

Функция возвращает идентификатор результата. Для команд определения данных, таких как CREATE, ALTER, DROP, идентификатор результата указывает на успех или неудачу при выполнении запроса.

Для команд манипулирования данными, таких как DELETE, INSERT, UPDATE, идентификатор результата позволяет узнать количество обработанных строк.

Для команды SELECT идентификатор результата является указателем на результирующий набор выбранных данных.

Узнать количество записей, выбранных в ответ на запрос, можно при помощи функции

mysql_num_rows (идентификатор результата)

Функция возвращает количество записей в наборе, ассоциированном с идентификатором результата. Следует заметить, что речь идет только об идентификаторе результата, полученного после запроса типа select.

Получить доступ к результатам выборки можно при помощи функций

mysql_fetch_row (идентификатор результата)

mysql_fetch_array (идентификатор результата)

Перечисленные выше функции получают в качестве параметра идентификатор результата. При выполнении функции извлекается одна запись из результирующего набора и возвращается в виде массива. Внутренний указатель автоматически перемещается на следующую запись (результат запроса может содержать более одной записи). В случае, если на момент вызова все записи были пройдены, функция возвращает значение "ложь".

После выполнения mysql_query указатель соответствующего результирующего набора устанавливается на первой записи. Последовательный вызов функции позволяет получить доступ ко всем записям результирующего набора.

Функции mysql_fetch_array и mysql_fetch_row отличаются типом возвращаемого результата:

  •  mysql_fetch_array возвращает ассоциативный массив, названия элементов которого соответствуют названиям столбцов в запросе типа select (и, соответственно, в полученном результате);
  •  mysql_fetch_row возвращает массив, индексированный числами, начиная с элемента 0 (последовательность элементов массива соответствует последовательности их перечисления в запросе).

Память, хранящая результирующий набор данных, автоматически освобождается сразу после окончания работы PHP-скрипта. Однако если по каким-либо причинам возникает необходимость в досрочном освобождении памяти, необходимо воспользоваться функцией

mysql_free_result(идентификатор результата)

В процессе работы с базой данных могут возникать различные ошибки (например, могут быть обнаружены синтаксические ошибки в SQL-запросах.). Для того, чтобы получить сообщение об ошибке, возвращенное сервером MySQL, можно воспользоваться функцией

mysql_error (идентификатор соединения)

Функция возвращает сообщение об ошибке, полученное от сервера в результате предыдущей команды (функции, запроса), связанной с обращением к MySQL. Ошибки, возникающие на сервере MySQL, не вызывают прекращение выполнения сценария.

Рассмотрим пример, иллюстрирующий взаимодействие PHP и MySQL. Проектируемое веб-приложение должно предоставить посетителю сайта возможность заполнить и отправить форму, содержащую поля «Имя» и «Почтовый адрес». Данные, отправленные посетителем должны храниться в базе данных. Для просмотра информации, отправленной пользователями, должен быть реализован отдельный скрипт.

Разработка приложения начинается с определения структуры базы данных. В данном случае, база данных будет состоять из одной таблицы следующего формата:


Поле

Тип данных

Описание

id

id int not null primary key auto_increment

Идентификатор посетителя

person

varchar(255) not null

Имя посетителя

name

mail varchar(255) not null

Почтовый адрес

База данных будет называться testbase. Для создания базы необходимо запустить входящий в состав СУБД консольный клиент mysql.exe (для OC Windows) и выполнить команду

create database testbase;

Создать таблицу (users), хранящую информацию о посетителях, можно также при помощи клиента, либо написав и выполнив следующий скрипт:

init.php

<?

if (!mysql_connect("localhost","root","")) die("Ошибка соединения");

mysql_select_db('testbase');

mysql_query("create table users(

id int not null primary key auto_increment,

person varchar(255) not null,

mail varchar(255) not null

)");

?>

Скрипт, обрабатывающий форму, должен анализировать данные на предмет наличия пустых полей и при обнаружении – выдавать сообщения об ошибке. В случае успешного добавления данных также должно выдаваться соответствующее сообщение.

input.php

<html>

<body>

<?

if (isset($ok)) {

if (!mysql_connect("localhost","root","")) die("Ошибка соединения");

mysql_select_db('testbase');

if (trim($person)=='') echo 'Необходимо ввести имя<br>';

elseif (trim($mail)=='') echo 'Необходимо ввести адрес<br>';

else {

$person=addslashes($person);

$mail=addslashes($mail);

mysql_query("insert into users values(NULL,'$person','$mail')");

 echo 'Данные сохранены<br>';

 }

}

?>

<form action="input.php" method="post">

 Имя: <input type="text" name="person"><br>

 Адрес: <input type="text" name="mail"><br>

<input type="submit" name="ok" value="ok">

</form>

</body>

</html>

При первой загрузке страницы отображается форма для ввода данных. При нажатии на кнопку «ok» страница перезагружается. Устанавливается соединение с базой данных. В случае обнаружения пустых полей в форме выводится сообщение об ошибке. Если пустые поля не обнаружены, в таблицу users добавляется новая запись с полученными параметрами и отображается сообщение об успешном добавлении данных.

После выполнения скрипта, вне зависимости от результатов его работы, вновь отображается форма.

Для просмотра записей в таблице реализуется отдельный скрипт.

output.php

<html>

<body>

<?

if (!mysql_connect("localhost","root","")) die("Ошибка соединения");

mysql_select_db('testbase');

$q=mysql_query("select * from users order by person");

while ($r=mysql_fetch_array($q))

echo $r['id'].' '.$r['person'].' '.$r['mail'].'<br>';

?>

</body>

</html>

Скрипт устанавливает соединение с базой данных, отправляет запрос на выборку всех записей о посетителях (записи сортируются по имени посетителя) и отображает выбранные записи в формате


 

А также другие работы, которые могут Вас заинтересовать

24659. Аналіз витрат на одну гривню товарної продукції 25 KB
  Аналіз витрат на одну гривню товарної продукції.товарної продукції є основним показником який харзує рівень і динаміку витрат на підво які розробляють різновидну продукцію. товварної продукції є загальним показником рівня витрат він може бути розрахованим для будь якого підващо дуже важливо до порівняння аналізу між підвами їх оцінки конкурентно спроможності. товарної продукції харзує успішність роботи підвапо впровадженя нової технікипідвищення продукції праці раціонально викорастаних ресурсів.
24660. Методика аналізу фінансових результатів підприємства 32 KB
  Кінцевим позитивним результатом господарської діяльності підприємства є прибуток. Прибуток це грошовий дохід утворений в результаті виробничогосподарської діяльності. Прибуток виконує такі основні функції: оцінки підсумків діяльності підприємства; розподілу розподілу доходу між підприємством і державою підприємством і його робітниками між сферою виробництва і невиробничою сферою; джерела утворення фондів економічного стимулювання і соціальних фондів. Джерелами аналітичної інформації є плани економічного та соціального...
24661. Аналіз валового прибутку від реалізації продукції 29 KB
  У процесі аналізу доходів визначають такі показники: 1 рівень доходів підва: доходи в сумі на 100 на товаро оборот. 2 розмір зміни рівня доходів:фактичний рівень доходівплан рівня доходів. 3 відхилення доходів суми:фактич.товарооборотвідхилення у 100 4 рентабельність: R=ЧП ВК 5 рівень рентабельності продажу Rпр=ЧП ЧР У процесі аналізу доходів визначаются такі показники: 1 рівень доходів підва= доходи в сумі 100 товарооборот 2 розмір зміни рівня підва=фактичній – плановий 3 відхилення доходів в сумі= фактичний товарооборотна відхил.
24662. Аналіз показників рентабельності 27.5 KB
  Аналіз показників рентабельності. Аналіз рентабельності підприємства дозволяє визначити ефективність вкладення коштів у підприємство та раціональність їхнього використання. Аналіз рентабельності підприємства здійснюється шляхом розрахунку таких показників коефіцієнтів: коефіцієнт рентабельності активів коефіцієнт рентабельності власного капіталу коефіцієнт рентабельності діяльності та коефіцієнт рентабельності продукції. Коефіцієнт рентабельності активів Ра розраховується як відношення чистого прибутку підприємства до середньорічної...
24663. Організація і методика аналізу фінансового стану підприємства в ринкових умовах 29 KB
  Відносні показники фінансового стану розподіляються на коефіцієнти розподілення і координації. Коефіцієнт розподілення відображають яку частину той чи інший абсолютний показник становить від підсумкового показника складовою частиною якого є цей показник.аналіз рентабельності Аналіз рентабельності підприємства здійснюється шляхом розрахунку таких показників коефіцієнтів: коефіцієнт рентабельності активів коефіцієнт рентабельності власного капіталу коефіцієнт рентабельності діяльності та коефіцієнт рентабельності продукції.
24664. Аналіз динаміки, складу та структури майна підприємства 25 KB
  В процесі аналізу активу і пасиву балансу визначають показники структури динаміки балансу структурної динаміки балансу. Для загальної оцінки динаміки фінансового стану підприємства необхідно виконати групування статей балансу по окремих групах за відзнакою ліквідності за ознакою активу та пасиву і зобов’язання. Використовуючи горизонтальний і вертикальний аналіз здійснення аналізу активу та пасиву балансу за групами.
24665. Аналіз структури джерел коштів підприємства 30.5 KB
  Аналіз структури джерел коштів підприємства. Як ми уже говорили раніше внутрішній аналіз структури джерел коштів підприємства пов'язаний з оцінкою альтернативних варіантів фінансування діяльності підприємства.До числа основних показників які характеризують структуру джерел коштів належить коефіцієнт фінансової незалежності автономії КАВТ як відношення загальної суми джерел власних коштів до підсумку балансу. Цей коефіцієнт є важливим і для інвесторів і для кредиторів тому що характеризує частку коштів вкладених власником у загальну...
24666. Аналіз дебіторсько-кредиторської заборгованості 37 KB
  Аналіз дебіторськокредиторської заборгованості. Значення аналізу дебіторської заборгованості особливо зростає в період інфляції коли іммобілізація власних оборотних активів стає дуже невигідною.У найзагальнішому вигляді зміни в обсязі дебіторської та кредиторської заборгованості за звітний період можуть бути охарактеризовані даними горизонтального та вертикального аналізу балансу. Особливу увагу в процесі аналізу дебіторської заборгованості приділяють статті Дебіторська заборгованість за товари роботи послуги яка має найбільшу питому вагу...
24667. Бюджетування є інструментом поточного планування підприємства 28.5 KB
  14 Бюджетування є інструментом поточного планування підприємства. Бюджетування – процес планування майбутньої діяльності підприємства і оформлення його результатів у вигляді системи бюджетів. Забезпечення координації і кооперації підрозділів підприємства. Обґрунтування витрат підрозділів і підприємства в цілому.