- •М іністерство освіти й науки україни Запорізький національний технічний університет методичні вказівки
- •Загальні відомості
- •Вимоги до оформлення звіту
- •1.1.2 Рядки
- •1.1.3 Файли
- •1.2 Завдання на виконання роботи
- •1.3 Контрольні питання
- •2 Лабораторна робота №2 Робота з формами
- •2.1 Теоретичні відомості
- •2.1.1 Інтерфейс Common Gateway Interface (cgi)
- •2.1.2 Форми
- •2.2 Завдання на виконання роботи
- •3.1.1 Функції php для роботи із скбд MySql
- •3.1.2 Установка скбд MySql
- •3.1.3 Основні команди мови sql
- •3.2 Завдання на виконання роботи
- •3.3 Контрольні питання
- •4 Лабораторна робота №4
2.2 Завдання на виконання роботи
Створити HTML документ , який містить PHP скрипт (він буде називатися, наприклад, lab2.php ), який виконує наступні дії:
При першому звернені до документу із броузера клієнта (за допомогою URL документу), в броузер клієнта виводиться HTML документ (назвемо його first_html), який містить таблицю (назвемо її first_tabl) із заголовками з 10 рядків та форму (назвемо її first_form) з 7 кнопок: VIEW, NEXT, PREV, ADD, DELETE, FIND, OVERWRITE. При цьому таблиця виводиться порожня.
При натисканні кнопки VIEW з форми first_form робиться запит методом GET до документу lab2.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка VIEW та вивести у таблицю first_tabl документа first_html перші 10 рядків з текстового файлу попередньої лабораторної роботи.
При натисканні на кнопки NEXT або PREV з форми first_form робиться запит методом GET до документу lab2.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка NEXT або PREV та вивести у таблицю first_tabl документа first_html наступні 10 або попередні 10 рядків з текстового файлу.
При натисканні кнопок ADD або DELETE з форми first_form робиться запит методом GET до документу lab2.php, який, розібравши запит, повинен визначити, що були натиснуті кнопки ADD або DELETE та вивести у броузер клієнта новий HTML-документ (назвемо його second_html), який містить форму (назвемо її second_form). Форма second_form повинна складатися з текстових полів, оформлених у вигляді таблиці, двох кнопок ADD та DELETE і посилання (у вигляді HREF) на попередній документ first_form (документ пункта 1). Таблиця (назвемо її second_tabl) містить один запис та стільки полів, скільки містить запис з файлу попередньої роботи.
При введені у відповідні поля таблиці second_tabl даних та натисканні кнопки ADD з форми second_form робиться запит методом GET до документу lab2.php. Отримавши запит, PHP, скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка ADD , зчитати з запиту вміст полів таблиці second_tabl. У кінець текстового файлу повинен бути приєднаний запис (порожні поля у таблиці не допускаються) у необхідному форматі (див. попередню лабораторну роботу). Далі у броузер клієнта повинен бути виведений HTML документ first_html.
При введені у відповідні поля таблиці second_tabl даних та натисканні кнопки DELETE з форми second_form робиться запит методом GET до документу lab2.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка DELETE, зчитати із запиту вміст полів таблиці second_tabl та з текстового файла видалити записи, відповідні поля яких співпадають зі значеннями полів таблиці second_tabl. При цьому порожнє поле таблиці second_tabl показує, що воно співпадає з будь-яким вмістом відповідного поля запису в файлі. Далі у броузер клієнта виводиться попередній документ first_html.
При натисканні кнопок FIND або OVERWRITE з форми first_form робиться запит методом GET до документу lab2.php, який, розібравши запит, повинен визначити, що була натиснута кнопка FIND або OVERWRITE та вивести у броузер клієнта новий HTML-документ (назвемо його third_html), який містить форму (назвемо її third_form), яка складається з текстових полів, оформлених у вигляді таблиці, двох кнопок FIND та OVERWRITE і посилання (у вигляді HREF) на попередній документ first_form. Таблиця (назвемо її third_tabl) містить один запис та стільки полів, скільки містить запис з текстового файлу.
При введенні у відповідні поля таблиці third_tabl даних та натисканні кнопки FIND з форми third_form робиться запит методом POST до документу lab2.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка FIND, зчитати із запиту вміст полів таблиці third_tabl та у броузер клієнта вивести HTML- документ first_html у таблиці якого first_tabl повинні бути відображені перші 10 записів файла, відповідних результатам пошуку. При цьому порожнє поле таблиці third_tabl показує, що воно співпадає з будь-яким вмістом відповідного поля запису в файлі.
При введенні у відповідні поля таблиці third_tabl даних та натисканні кнопки OVERWRITE з форми third_form робиться запит методом POST до документу lab2.php. Отримавши запит, PHP скрипт, який міститься у документі, повинен розібрати запит, визначити, що була натиснута кнопка OVERWRITE, зчитати із запиту вміст полів таблиці third_tabl, знайти всі записи файла , вміст полів first_name та second_name яких співпадає з вмістом полів таблиці third_tabl (порожнє поле first_name або second_name означає будь-яке значення) та у знайдених записах змінити у текстовому файлі всі інші поля значеннями з third_table (якщо поле у таблиці порожнє, то у відповідне поле у запису файла значення не змінює). Далі в броузер клієнта повинен бути виведений HTML-документ first_html, у таблиці якого first_tabl повинні бути відображені перші 10 записів файла, відповідні результатам заміни.
2.3 Контрольні питання
2.3.1 Форми й інтерфейс загального доступу CGI.
2.3.2 Елементи форм і атрибути.
2.3.3 Керуючі елементи форм.
2.3.4 Методи передачі даних POST і GET.
3 Лабораторна робота №3
Засоби мови PHP для роботи із
СКБД MySQL
Мета роботи: практичне застосування знань про методи роботи із СКБД MySQL у мові програмування PHP.
3.1 Теоретичні відомості
При створенні реальних Web проектів досить часто потрібно постійне відновлення HTML сторінок. І якщо обсяг обновлюваних даних досить великий, і (або) будь-який відвідувач ресурсу має можливість вносити свої дані, самим оптимальним рішенням є використання разом з HTML баз даних. Найбільше часто в Web проектах використовується СКБД MySQL. Це обумовлено насамперед тим, що СКБД MySQL існує практично під усі платформи, легко набудовується і є безкоштовною.
PHP крім MySQL підтримує ряд інших СКБД (наприклад, InterBase, Informix, Oracle, Sybase, Microsoft SQL Server), і для кожної з них є свій набір функцій. Функції для роботи з MySQL мають префікс mysql_, аналогічні префікси визначають функції для інших баз даних. Незважаючи на те, що для кожної бази даних є свій набір функцій, існує типова модель роботи з базою даних:
Підключення до СКБД.
Вибір бази даних.
Виконання SQL інструкції.
Обробка результатів.
Відключення від СКБД.
Підключення до MySQL здійснюється функцією mysql_connect:
$connection = @mysql_connect("localhost","admin","123") or
die("Неможливо підключитися до MySQL");
Як аргументи даної функції виступають ім'я сервера ("localhost"), ім'я користувача ("admin") і пароль("123"). Символ @ використовується для подавлення повідомлень сервера про помилки.
Вибір бази даних здійснюється функцією mysql_select_db:
$connection = @mysql_connect("localhost","admin","") or
die("Неможливо підключитися до MySQL");
$db_name="php_test";
$db=@mysql_select_db($db_name,$connection) or
die("Cannot select database!!");
Перший аргумент цієї функції – ім'я обираної бази даних, другий – ідентифікатор поточного з'єднання.
Вибравши базу даних для роботи можна безпосередньо працювати з будь-якими її таблицями: вибирати дані, змінювати їх, додавати і видаляти, а також модифікувати, видаляти і додавати таблиці (якщо, звичайно, у вас є на це привілеї). Виконання SQL запиту здійснюється за допомогою функції
mysql_query($sql,$connection), де
$sql – перемінний, утримуючий текст запиту;
$connection – ідентифікатор поточного з'єднання.
Якщо запит успішний, то функція повертає ідентифікатор результату, що потім можна обробити за допомогою функції mysql_fetch_array. Ця функція зберігає результат запиту в масиві, звернутися до елементів якого можна або використовуючи імена полів, або їхній порядковий номер.
Як приклад візьмемо базу даних php_test, що містить таблицю Author. Поля цієї таблиці – id (унікальний ідентифікатор запису), name (ім'я письменника), biography (короткий коментар). Потрібно вивести список авторів і коментарі до них у вигляді таблиці.
Код PHP скрипта буде виглядати так:
<?
$msg="<p align=\"center\"><strong>";
//here is we make connection
$connection = @mysql_connect("localhost","admin","") or
die("Неможливо підключитися до MySQL");
if ($connection)
{ $msg .="Connection OK!!!"; }
//the name of database we are going to use
$db_name="php_test";
//we select database "php_test"
$db=@mysql_select_db($db_name,$connection) or
die("Cannot select tabel!!");
//------------------------------------------
$sql="select * from author";
$result=@mysql_query($sql,$connection) or
die("Selection failed!");
$tb="<table border=1 bordercolor=black align=center><tr>";
$tb .="<th width=270 align=center >Name";
$tb .="<th width=400 align=center >Biography";
$tb .="<tr>";
while ($row=mysql_fetch_array($result))
{ $id=$row['id'];
$name=$row['name'];
if (!$name) {$name=" "; }
$tb .="<th width=270 align=center>$name";
$biography=$row['biography'];
if (!$biography) {$biography=" "; }
$tb .="<th width=400 align=center>$biography";
$tb .="<tr>";
}
$tb .="</table>";
//---------Bye-bye--------------------------
$msg .="</strong></p><br>";
?>
<html>
<head>
<title>Connetion to MySQL</title>
</head>
<body>
<? echo "$msg$tb";?> <br>
</body>
</html>
Запустивши на виконання скрипт, одержимо:
Рисунок 3.1 – Результати виконання скрипта
