УЧЕБНЫЕ МАТЕРИАЛЫ

Web-верстка, компьютерная графика,
мультимедиа

Уроки PHP и MySQL

Скачать материалы к учебному курсу:
Скачать Notepad++ Portable
Скачать Denwer3 (версия p5.3.13_m5.5.25_pma3.5.1)
Скачать папку CD_php для изучения курса «Уроки PHP и MySQL» (223 Кб)




Уроки PHP и MySQL. Урок 4. Введение и приложения

Введение

Web – это клиент-серверная среда. Технологии Web-программирования можно разделить на две основные группы: программирование на стороне клиента и на стороне сервера. Клиентские технологии объединяют то, что может быть исполнено непосредственно в браузере (HTML, CSS, JavaScript).

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

Для разработки серверной части Web-приложения инструментов понадобится значительно больше.

Серверное web-приложение может быть написано практически на любом языке, который поддерживается на сервере. Кроме того, существует технология серверного программирования, называемая «серверными скриптами» или «сценариями на стороне сервера». Эта технология позволяет включать программный код непосредственно в web-страницы. В качестве инструмента реализации серверной части сайта будем использовать язык программирования PHP. Этот язык разработан специально для Web.

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

Базовый комплекс инструментария web-разработчика включает в себя web-браузер, web-сервер, сценарный механизм и сервер баз данных:

Уроки PHP и MySQL

Типичная транзакция базы данных для Web состоит, соответственно, из следующих этапов:

1. Web-браузер пользователя отправляет HTTP-запрос определенной web-страницы. (Например, запрос на поиск в базе данных рыжего кота). Страница с результатами запроса пусть называется result.php.

2. Web-сервер принимает запрос на генерирование страницы result.php, извлекает файл и передает его на обработку механизму PHP.

3. Механизм PHP начинает синтаксический анализ сценария. Сценарий содержит команду подключения к базе данных и выполнения запроса (на поиск кошки). PHP открывает соединение с сервером MySQL и отправляет ему соответствующий запрос.

4. Сервер MySQL принимает запрос базы данных, обрабатывает его, а затем отправляет результаты – в данном случае, список рыжих котов – обратно механизму PHP.

5. Механизм PHP завершает выполнение сценария, что обычно сопряжено с форматированием результатов запроса в виде HTML, после чего возвращает результаты в HTML-формате web-серверу.

6. Web-сервер пересылает браузеру HTML-страницу, в которой пользователь может посмотреть сформированный список.

Программное обеспечение web-сервера, механизм PHP, и сервер баз данных могут действовать на одном компьютере. Но достаточно часто сервер баз данных работает на другом компьютере. Это может быть обусловлено соображениями безопасности, или более эффективного распределения нагрузки.

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

<?php
Подключение к СУБД()
Выбор таблицы()
Инструкции_SQL()
Чтение результатов()
While   (есть записи)
(чтение записи)
Отключение от СУБД()
?>

Чтобы нам можно было работать дальше, нужно иметь доступ к web-серверу с установленной на нем поддержкой PHP и доступ к MySQL-серверу.

Мы с Вами будем использовать для работы так называемый Джентльменский набор web-разработчика Apache+MySQL+PHP и отлаживать приложения, используя свой компьютер в режиме сервера. Этот набор представляет автоматически настраивающийся комплекс программ и серверов, предназначенный для разработки сайтов в Windows с расчетом использования их в Unix. Вместо того, чтобы настраивать отдельно Apache, PHP и т.д. по различным руководствам, рекомендуется воспользоваться этим проектом. Базовый пакет Денвера имеет размер 5-6 МБ. Его можно скачать по адресу http://www.denwer.ru/. Там же — подробная инструкция по установке и использованию.

Приложение 1

Справочник по синтаксису PHP

В наших уроках PHP и MySQL вы должны внимательно изучать примеры, запускать их, вносить в них различные изменения, анализировать результат.

Оформление PHP-сценария

Программа на языке PHP обычно вставляется в HTML-текст. Поэтому предусмотрены специальные теги для отделения PHP-текста от HTML.

<html>
<body>
<h1>Пример использования PHP в HTML-тексте</h1>
<? php
текст php-программы
?>
</body>
</html>

Если PHP-сценарий представляет собой самостоятельный модуль, он также должен начинаться с конструкции <?php и заканчиваться конструкцией ?>.

Любой файл, содержащий PHP-сценарий, имеет расширение php, независимо от того, встроен сценарий в HTML-текст или полностью написан на PHP.

Комментарии в PHP

PHP поддерживает использование однострочных и многострочных комментариев. Многострочные комментарии должны начинаться с символов /* и завершаться символами*/. Однострочные комментарии предваряются символами //. Закрывать их не нужно. Примеры комментариев приведены в листингах 1, 2,3, 4.

Типы данных в PHP

PHP поддерживает следующие типы данных: числа с плавающей точкой, целые числа, строки, массивы и объекты. Тип переменной обычно определяется тем, что в нее записано.

Переменные в PHP

В языке PHP имя переменной начинается со знака доллара ($), за которым следует собственно имя переменной. В именах переменных различаются верхний и нижний регистры. Имя переменной должно начинаться с буквы или символа подчеркивания, за которыми могут следовать буквы, цифры или знаки подчеркивания. Буквы должны быть из диапазона A—Z.

Область действия переменных

Термин область действия переменной означает область, из любого места которой видна эта переменная. В PHP используются следующие основные типы областей действия:

1. Встроенные суперглобальные переменные, которые видны из любого места сценария.

2. Глобальные переменные, объявленные в сценарии, которые видны в любом месте сценария, но не внутри функций.

3. Переменные, использованные внутри функций. Они являются локальными по отношению к этой функции.

Отметим некоторые из суперглобальных переменных:

1. $_GET — массив переменных, переданных в сценарий посредством метода GET.

2. $_POST — массив переменных, переданных в сценарий посредством метода POST.

3. $_REQUEST — массив всех переменных, вводимых пользователем.

PHP-операторы

Действия, которые должен выполнить php-интерпретатор, задаются php-операторами, помещаемыми

между специальными тегами:

<?php
print ("Пример оператора");
?>

В конце каждого оператора php обязательно ставится точка с запятой!

Функции в PHP

PHP имеет обширную библиотеку функций, которые можно использовать при разработке Web-приложений. Формат вызова функции: function(). Большинству функций нужно передавать некоторые данные, чтобы они возвращали соответствующие данные в качестве результатов. Например, для вывода строк в окне броузера мы будем использовать функцию print(), которой в качестве параметра передается строка для вывода:

<?php
print ("Пример функции");
?>

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

Технология создания серверного сценария

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

1. Откройте текстовый редактор (лучше Блокнот).

2. Наберите текст php-сценария.

3. Сохраните файл с расширением php.

4. Запустите FTP-клиент.

5. Скопируйте созданный php-файл на Web-сервер в свой каталог.

6. Запустите браузер.

7. Наберите адрес вашего сценария в адресной строке браузера (с учетом регистра).

Возможно, что при запуске php-сценария обнаружатся ошибки. Тогда вам придется отредактировать программу. Действия те же.

Маленький секрет: Вообще-то нельзя, но если очень надо... Можно редактировать код прямо на сервере, пользуюсь услугами встроенного редактора FTP-клиента. В таком случае нужно почаще сохраняться, поскольку сеанс связи с сервером весьма короткий (примерно 3 минуты).

Приложение 2

Алфавитный справочник по функциям PHP

mysql_close()

Закрывает соединение с MySQL-сервером., связанным с заданным идентификатором ссылки. Если аргумент функции не задан, то используется последняя открытая ссылка.

Пример:

<?php
$link=mysql_connect ("194.226.238.70", "name", "");
mysql_close($link);
?>

mysql_connect ($host, $user, $password)

Устанавливает связь с MySQL-сервером. Функция имеет следующие необязательные параметры: $host — имя узла, на котором размещен сервер MySQL, $user — имя пользователя для входа на сервер и $password — пароль. По умолчанию приняты следующие установки: $host=’localhost’, $username=имя пользователя, под которым запущен процесс PHP, $password=пустой пароль.

В случае успешного соединения функция возвращает идентификатор связи с базой данных, в случае неудачи — значение false.

Пример:

<?php
$link=mysql_connect ("194.226.238.70", "name", "");
if (!$link)
print ("Нет соединения");
else
print ("Соединение установлено");
mysql_close();
?>

mysql_fetch_array()

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

Пример:

<?php
//Предварительно определяются используемые переменные.
$query="select * from $usertable";
$result=mysql_query($query);
while ($row=mysql_fetch_array ($result))
{
print ($row['name']); //Вывод из всех записей значения выбранного поля
}
mysql_close();
?>

mysql_fetch_row()

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

Пример:

<?php
//Предварительно определяются используемые переменные
$query="select * from $usertable";
$result=mysql_query($query);
while ($row=mysql_fetch_row ($result))
{
print ($row[0]); //Вывод из всех записей значения выбранного поля (первого в таблице)
}
mysql_close();
?>

mysql isset($var)

Предназначена для проверки состояния переменных. Возвращает true, если переменная $var существует, и false в противном случае. Эта функция может оказаться полезной, чтобы проверить, заполнил ли пользователь соответствующие поля формы.

Пример:

<?php
$var="test";
if(isset ($var))
print ("переменная существует");
else
print ("Переменная не определена");
?>

mysql_num_rows()

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

Пример:

<?php
//Предварительно определяются используемые переменные
mysql_connect ($hostname, $username, $password) or die ("Нет"); // Соединяемся с сервером
mysql_select_db ($dbname); // Выбираем базу данных
$query="select * from $usertable"; 

// Формируем запрос
$result=mysql_query ($query); // Выполняем запрос с сохранением результата
$number=mysql_num_rows ($result); // Определяем количество строк в результате запроса
print ("Количество строк=$number"); 

// Выводим результат
$number=mysql_num_rows ($result)
for ($i=0; $i<$number; $i++) //Обработка результатов
}
?>

Чтение результатов запроса осуществляется с использованием один из видов цикла в PHP — например, цикла FOR. Основная структура цикла:

FOR(выражение1; условие; выражение2) выражение3;

Выражение1 устанавливает начальное значение счетчика цикла.

Выражение условие проверяется перед каждой итерацией. Если это выражение возвращает значение false, итерация прекращается. Обычно в нем значение счетчика сравнивается с предельным значением.

Выражение2 выполняется в конце каждой итерации. Обычно в нем меняется значение счетчика.

Выражение3 выполняется один раз во время каждой итерации. Обычно это выражение содержит собственно тело цикла.

mysql_query($query)

Отсылает запрос на сервер к текущей базе данных. Строка запроса не должна оканчиваться точкой с запятой. При успешном выполнении запросов SELECT, SHOW, EXPLAIN, DESCRIBE функция возвращает идентификатор результата, который следует сохранить, в случае неудачи — значение false. С помощью идентификатора результата можно получить результат запроса. (Идентификатор результата — это ключ доступа к возвращенным запросом строкам, которых может быть ноль, одна и более). Для запросов DELETE, INSERT, REPLACE, UPDATE функция возвращает значение true или false.

Пример:

<?php
$query="insert into dog (poroda) values ('доберман')";
$result=mysql_query($query);
?>

mysql_result()

Получение доступа к отдельному полю результата запроса. Для этого необходимо указать номер строки (от нуля до количества строк минус 1) и имя поля.

Пример:

<?php

//Предварительно определяются используемые переменные
$query="select * from $usertable";
$result=mysql_query($query);
$number=mysql_num_rows($result);
$i=0;
while ($i < $number){
print (mysql_result($result, $i, "name"));

//Вывод из всех записей значения выбранного поля
$i++;
}
mysql_close();
?>

mysql_select_db($dbname)

Устанавливает текущую активную базу данных на сервере. Возвращает true в случае успеха, false в случае ошибки.

Пример:

<?php
$dbname="library";
mysql_select_db($library);
?>

print (arg)

Выводит на печать аргумент arg.

Пример:

<?php 
print ("Привет"); //Привет 
$fi="Факультет информатики";
print ("Привет, $fi"); //Привет, Факультет информатики
?>