
- •В.С. Романчик
- •Глава 2. Использование php.
- •Глава 3.
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и директива error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и от сервера клиенту
- •Клиентские методы http get, post, head
- •Обработка html-форм и передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Ниже рассмотрен еще один пример передачи данных из клиентской формы на сервер по методу get
- •Передача данных на сервер по методу post
- •Php и обработка различных форм
- •Примеры обработки форм
- •Работа с e-mail
- •Отправка почты на php (Функция mail)
- •Cookies-наборы: сохраненное состояние
- •Сессии (Сеансы) Переменные сеанса
- •Отмена регистрации сеансовых переменных
- •Работа с сеансовыми переменными
- •Постоянные данные, использующие сеансы и cookie-наборы
- •Вывод графических данных с помощью рнр Основной способ создания изображений
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Работа с палитрой изображения
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование специальных стилей для заливки
- •Использование шрифтов и вывод строк
- •Манипулирование и копирование изображений
- •Создаём графический информер на php
- •Слияние изображений с помощью gd
- •Включения удаленных файлов
- •Различные приложения и полезные скрипты на php
- •Пример. Определение типа и версии браузера
- •Генератор паролей на php
- •Время выполнения скрипта
- •Календарь
- •Загрузка файла от клиента на сервер
- •Работа с ftp на уровне php
- •Сбор статистики на php
- •Проверка ввода емайл
- •Чтение почты через Web-интерфейс
- •Разработка собственных листов рассылки
- •Рассылаем письма
- •Добавляем адреса в список рассылки
- •Редактирование адресов
- •Автоответчик
- •Почтовые функции в рнр
- •Задания для выполнения
- •Приложение 1. Протокол передачи гипертекстов http
- •Клиентские методы и заголовкиHttp
- •Указатель ссылки ("Referer")
- •Медиа-типы
- •Кодирование
- •Безопасность и авторизация
- •Кэширование содержимого http на стороне клиента
- •Http идентификация с php
- •Сжатие данных в протоколе http
- •Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.
- •Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием
- •Информируйте пользователя
- •Нет принципов написания кода
- •Аутентификация средствами php
- •Отделение клиентская части программы от серверной части и шаблоны
- •Использование шаблонов в php
- •Шаблоны подстановки
- •Создаем свои шаблоны в php
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Метатеги
- •Способы включения каскадных таблиц стилей
- •Синтаксис
- •Группирование
- •Наследование
- •Множественные классы.
- •Селекторы идентификаторов (id-селекторы).
- •Комментарии
- •Свойства шрифтов.
- •Свойства текста.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование.
- •Границы элементов.
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •Css. Примеры
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Приложение 11. Популярные веб-приложения и фреймворки
- •Фреймворки
Операция соединения.
Внутреннее соединение возвращает только те строки, для которых условие соединения принимает значение true. Рассмотрим пример запроса:
SELECT StudName, ExamMark FROM Student, Exams WHERE Kurs=2 AND ExamMark=5 – получить список студентов 2-го курса, сдававших экзамен на 5.
Внешнее соединение возвращает все строки из одной таблицы и те строки из другой таблицы, для которых условие соединения принимает значение true. Существуют два вида внешнего соединения: в левом соединении (LEFT JOIN) запрос возвращает все строки из таблицы, стоящей слева от LEFT JOIN и только те из правой таблицы, которые удовлетворяют условию соединения. Для правого соединения – все наоборот. Например:
SELECT name, department FROM employee e LEFT JOIN department d ON e.dept_no = d.dept_no – получить список сотрудников и название их отделов, включая сотрудников, еще не назначенных ни в какой отдел.
Phpmyadmin
Программное средство phpmyadmin представляет удобные средства и инструменты для создания баз данных, для проектирования и создания таблиц. Вызвать утилиту возможно следующим образом: http://www.localhost/phpmyadmin
Здесь можно вручную создать базу данных и установить права доступа. Затем создается структура таблиц и сами таблицы.
Команды sql для создания баз данных и таблиц
CREATE DATABASE database_name - создать базу данных,
CREATE TABLE table_name(Имя_поля1 тип1, Имя_поля2 тип2…)-создать таблицу,
DROP DATABASE database_name - удалить базу данных,
DROP TABLE table_name -удалить таблицу,
ALTER DATABASE database_name - модифицировать базу данных,
ALTER TABLE table_name -модифицировать таблицу,
INSERT INTO table_name (Имя_поля1 тип1, Имя_поля2 тип2…) values(‘val1’,’val2’,…) - вставка записи со значениями полей val1, val2, … .
DELETE FROM table_name WHERE выражение -удаление записи, для которой выполнено выражение
UPDATE table_name SET(Имя_поля1 ‘val1’, ‘Имя_поля2 val2’…) where выражение –обновить таблицу.
Для выполнения SQL запроса используется функция mysql_query($sql);. Сначала создается строка, содержащая SQL – запрос. Затем эта строка передается для выполнения.
Рассмотрим пример выполнения команд SQL по созданию базы данных из PHP:
//соединяемся с сервером
int mysql_connect();
// создаем базу данных:
$sql=”create database ‘mydb’”;
mysql_query($sql);//выполнение директивы SQL
//Cоздаем таблицу:
$sql=”CREATE TABLE userstable
(name VARCHAR(25), email VARCHAR(25), choise VARCHAR(15))”
mysql_query($sql); );//выполнение директивы SQL
После создания базы порядок работы с MySQL для выборки данных из базы устанавливается следующий:
Создать соединение с сервером MySQL, расположенным на $hostname:
int mysql_connect([string $hostname],[string $username],[string password]);
или mysql_pconnect().
Здесь hostname - имя хоста (по умолчанию localhost), username - имя пользователя, password - пароль пользователя. Функция возвращает параметр ID соединения, который равен 0, если соединение не прошло успешно.
Выбрать базу данных для работы:
int mysql_select_db(string $database_name[, int link_identifier]);
Здесь: database_name - имя базы данных, link_identifier – необязательный параметр, содержащий ID соединения из mysql_connect. Если этот параметр отсутствует, выбирается последнее открытое соединение. Функция возвращает значение true или false.
Выполнить запрос к базе данных.
int mysql_query(string $query[, int $link_identifier]);
Здесь $query - строка, содержащая SQL запрос, link_identifier –ID соединения. Функция возвращает ID результата или 0, если произошла ошибка.
Закрыть соединение с MySQL.
int mysql_close(int link_identifier); Параметры: link_identifier - ID соединения. Функция возвращает значение true или false.
Пример: Создание базы данных и таблицы.
<html>
<head>
<title>Запрос информации</title>
<body>
<center> Введите Ваши данные <p>
<table width = 400><tr><td align = right>
<form action="pr1BD.php" method="post">
Ваше имя:<BR>
<input type="text" name="name" size="20" maxlength="30">
<P>
Ваш email:<BR>
<input type="text" name="email" size="20" maxlength="30">
<p>
<input type="submit" value="Отправить запрос!">
</form>
</td></tr></table></center>
</body>
</html>
<?php // pr1bd.php - скрипт создает БД и таблицу
$dbName ='mydb';
/* создать соединение */
$link = mysql_connect( "localhost" , "root" ) or exit("Could not connect");;
/* уничтожить старую БД */
$sql= sprintf("DROP DATABASE %s ",$dbName);
if (mysql_query($sql, $link)) {
echo "Database drop successfully\n";
} else { echo 'Error drop database: ' . mysql_error() . "\n"; }
/* создать новую БД */
$sql="create database $dbName";
//выполнение директивы SQL
if (mysql_query($sql, $link)) {
echo "Database created successfully\n";
} else { echo 'Error creating database: ' . mysql_error() . "\n"; }
//Cоздаем таблицу: mydb.clients
$tablename = 'clients' ;
$sql=sprintf("CREATE TABLE %s.%s (
`name` VARCHAR( 25 ) NOT NULL , `email` VARCHAR( 25 ) NOT NULL ) ENGINE = MYISAM ",$dbName,$tablename);
if (mysql_query($sql, $link)) {
echo "Table created successfully\n";
} else { echo 'Error creating Table: ' . mysql_error() . "\n"; }
$name=$_POST['name'];
$email=$_POST['email'];
// вставка записи со значениями полей val1, val2,
$sql=sprintf("INSERT INTO %s.%s values('$name', '$email')", $dbName, $tablename);
if (mysql_query($sql, $link)) {
echo "Table insert successfully\n";
} else { echo 'Error insert Table: ' . mysql_error() . "\n"; }
mysql_close($link); /* Закрыть соединение */
$link = mysql_connect( "localhost" , "root" )or die("Не могу создать соединение ");;
//Выбрать БД
$result =mysql_select_db("$dbName",$link) or die("Не могу выбрать базу данных ");
//создать SQL - запрос
$sql=sprintf("Select * from %s", $tablename);
$result = mysql_query($sql,$link);
if (!$result) { die('Invalid query: ' . mysql_error()); }
$myrow=mysql_fetch_array($result); //установка первой записи
echo"<br>", $myrow['name'];//вывод поля “name” первой записи
echo $myrow['email'];
mysql_close($link);/* Закрыть соединение */
?>