- •Методичні вказівки
- •«Проектування інформаційних ресурсів Інтернет»
- •6.040303 «Системний аналіз»
- •3.3 Завантаження дампа в базу 28
- •4 Короткі теоретичні відомості про php 30
- •1 Набір web-розробника denwer
- •1.1 Призначення та склад denwer
- •1.2 Інсталяція дистрибутива
- •1.3 Робота з віртуальними хостами
- •2 Система керування базами даних mysql
- •2.1 Загальні положення
- •2.2 Установка MySql
- •2.3 Поля і їхні типи в MySql
- •Цілочисельні типи даних
- •Дійсні числа
- •Рядкові типи
- •Бінарні типи даних
- •Дата та час
- •2.4 Оператори та команди MySql
- •Сортування записів
- •Внутрішні функції min, max, avg, sum
- •Групування записів
- •Видалення полів і таблиць. Оператор drop
- •Відключення від субд
- •3 Розробка й редагування бд за допомогою phpmyadmin
- •3.1 Створення бд і таблиць за допомогою phpMyAdmin.
- •3.2 Резервне копіювання бд
- •3.3. Завантаження дампа в базу
- •4 Короткі теоретичні відомості про php
- •4.1 Основні положення
- •Привіт, я - скрипт php!
- •4.3 Типи даних (змінних) в php
- •4.4 Оператори
- •Арифметичні оператори
- •Порозрядні оператори
- •Логічні оператори
- •Оператори рівності
- •Оператори порівняння
- •Інкремент і декремент
- •Оператори присвоєння
- •Логічний оператор if ...Else
- •Оператор switch
- •Оператор циклу із передумовою
- •Оператор циклу з післяумовою
- •Універсальний цикл for
- •4.5 Функції рнр
- •5.1 Рнр функції для роботи з MySql
- •5.2 Виведення даних з таблиці
- •5.3 Додавання даних у бд
- •5.4 Видалення даних із бд
- •5.5 Відбір даних з поєднаних таблиць
- •Рекомендована література
5.1 Рнр функції для роботи з MySql
Однією з найважливіших особливостей РНР є зручність взаємодії з базами даними. Зокрема, для взаємодії з MySQL нам будуть потрібні такі функції:
mysql_connect(string hostname, string username, string password);
Створити з'єднання з MySQL.
Параметри:
Hostname - ім'я хоста, на якому перебуває база даних.
Username - ім'я користувача.
Password - пароль користувача.
Функція повертає параметр типу int, який більше 0, якщо з'єднання відбулося успішно, і дорівнює 0 у протилежному випадку.
mysql_select_db(string database_name, int link_identifier);
Вибрати базу даних для роботи.
Параметри:
Database_name - ім'я бази даних.
link_identifier - ідентифікатор з'єднання, що отримано у функції mysql_connect. (параметр необов'язковий, якщо він не вказується, то використовується ID від останнього виклику mysql_connect).
Функція повертає значення true або false
mysql_query(string query, int link_identifier);
Функція виконує запит до бази даних.
Параметри:
query - рядок, що містить запит
link_identifier - див. попередню функцію.
Функція повертає ID результату або 0, якщо сталася помилка.
mysql_result(int result, int i, column);
Функція повертає значення поля в стовпці column і в рядку i.
mysql_fetch_row ($result);
Функція дозволяє одержати доступ до даних після виконання запиту SELECT.
Параметри:
$result результат виконання mysql_query()
Функція повертає набір значень у вигляді одновимірного масиву, що являє собою один рядок із двовимірного масиву $result. Перший виклик функції повертає перший рядок двовимірного масиву $result, а кожний наступний – чергову. Як індекси однвимірного масиву використовуються порядкові номери елементів. Нумерація починається з нуля.
mysql_fetch_array ( $result)
Те ж, що й попередня функція, тільки як індекси масиву використовуються імена полів таблиці.
mysql_close(int link_identifier);
Функція закриває з'єднання з MySQL.
Параметри:
link_identifier - див. вище.
Функція повертає значення true або false.
mysql_num_rows ( $result)
Параметри:
$result результат виконання mysql_query()
Функція повертає кількість рядків двовимірного масиву $result.
Розглянемо тепер декілька прикладів скриптів, що взаємодіють з MySQL. Скрипти будуть звертатися до бази даних library, розглянутої в попередніх розділах. Створимо новий хост test.ua. Для цього створимо папку test.ua за адресою c:/webservers/home/ (якщо Денвер установлений у кореневому каталозі диска С). Потім створюємо папку www у папці test.ua і надалі будемо складати в цю папку всі файли прикладів.
5.2 Виведення даних з таблиці
Наберемо в блокноті текст скрипта й збережемо його за адресою
c:/webservers/home/test.ua/www:
<html>
<body>
<h2> Список читачів </h2>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("library",$db);
$result = mysql_query("SELECT * FROM reader",$db);
while ($myrow = mysql_fetch_row($result))
{echo $myrow[1],$myrow[2].'<br>';}
?>
</body>
</html>
Далі, запускаємо Денвер і набираємо в адресному рядку браузера http://test.ua /readers.php. У результаті у вікні браузера одержимо список читачів
Список читачів
Волков І. вул. Леніна 47
Жуков І. вул. Гоголя 21
Зайцев О. вул. Лісова 28
Медведєв П. вул. Задніпровська 45
Козлов Н. вул. Будівельників 56
Биков Р. вул. Гоголя 58
Тарганов Г. вул. Дзержинського 81
Клопов Є. вул. Воронезька 64
Комаров К. вул. Ювілейна 68
Блохін А. вул. Леніна 55
Розглянемо докладніше команди скрипта. У рядку
$db = mysql_connect("localhost", "root");
відбувається підключення до сервера MySQL. Параметр localhost свідчить про те, що сервер MySQL установлений на тому ж комп'ютері, що й Webserver. Параметр root відповідає користувачеві із правами адміністратора, пароль у цьому випадку не потрібний. Надалі ім'я користувача й пароль треба змінити. Змінна $db – це ідентифікатор з'єднання.
У рядку
mysql_select_db("library",$db);
вибирається база даних library.
У рядку
$result = mysql_query("SELECT * FROM reader",$db);
виконується запит на вибірку всіх полів з таблиці reader. Змінна $result набуває результатів запиту у формі двовимірного масиву. Далі відкривається цикл і функція mysql_fetch_row($result) по черзі вибирає рядки з $result і формує щоразу одновимірний масив $myrow.
У тілі циклу відбувається вивід першого й другого елементів масиву $myrow, що відповідає полям Прізвище й Адреса таблиці reader. Цикл триває доти, поки не буде прочитаний останній запис із $result.
Замість функції mysql_fetch_row() можна використовувати функцію mysql_fetch_array(). У цьому випадку у якості індексів масиву $myrow використовуються імена полів і цикл матиме такий вигляд
while ($myrow = mysql_fetch_array($result))
{echo $myrow['fio'],$myrow['addres'].'<br>';}
Перепишемо тепер скрипт таким чином, щоб дані виводилися в таблицю. Зверніть увагу на те, як теги HTML інтегровані в PHP код.
<html>
<body>
<h2> Список читачів </h2>
<?php
$db = mysql_connect("localhost", "root") or die("Неможливо з'єднатися із сервером");
mysql_select_db("library",$db)or die ("Неможливо вибрати базу даних");
$result = mysql_query("SELECT * FROM reader",$db)or die("Запит не виконаний");
echo "<table border=1>\n";
echo "<tr><td>Прізвище</td><td>Адреса</tr>\n";
while ($myrow = mysql_fetch_row($result))
{
printf("<tr><td>%s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2]);
}
echo "</table>\n";
?>
</body>
</html>
У скрипт також додані повідомлення, що сигналізують про збої на певних етапах роботи. Крім того, замість команди висновку echo використовується більш гнучкий оператор висновку printf(). Результат роботи скрипта представлений нижче.
Список читачів
-
Прізвище
Адреса
Волков І.
вул. Леніна 47
Жуков І.
вул. Гоголя 21
Зайцев О.
вул. Лісова 28
Медведєв П.
вул. Задніпровська 45
Козлов Н.
вул. Будівельників 56
Биков Р.
вул. Гоголя 58
Тарганов Г.
вул. Дзержинського 81
Клопов Є.
вул. Воронезька 64
Комаров К.
вул. Ювілейна 68
Блохін А.
вул. Леніна 55
Наступні приклади демонструють взаємодію з базами даних через HTML форми.