Распечатать страницу
Главная \ База готовых работ \ Готовые работы по компьютерным дисциплинам \ WEB-программирование \ 729. Лабораторна робота №16, Доступ до даних через web-інтерфейс

Лабораторна робота №16, Доступ до даних через web-інтерфейс

« Назад

Код роботи: 729

Вид роботи: Лабораторна робота

Предмет: Web-програмування

Тема: №16, Доступ до даних через web-інтерфейс

Кількість сторінок: 1

Дата виконання: 2015

Мова написання: українська

Ціна: 150 грн

Хід роботи

У даній лабораторній роботі ви навчитесь підключати базу даних Mysql до сайту, а також довідаєтеся, яким образом можемо управляти даними через web -інтерфейс (тобто через браузер).

На даний момент у вас повинна бути створена база даних «school», що включає таблицю «user». Таблиця повинна містити п'ять полів:

729,1

У ході заняття ви створите php -файл, який з назвою user.php . Він повинен мати наступну структуру:

код для підключення до бази даних (лістинг 1);

код для видалення запису в базі даних (чому код для видалення перебуває до виводу обговориться пізніше) (лістинг 5);

форма для введення значень у базу даних (лістинг 2);

код для додавання запису в базі даних (лістинг 3);

код для висновку значень на екран (лістинг 4);

Підключення бази даних

Для того, щоб додавати інформацію в базу даних необхідно спочатку сторінки (наприклад, після тегу < body > додати наступні рядки php -коду:

Лістинг №1

729,2

Перший рядок за допомогою функції mysql _ connect () створює об'єктну змінну $db. Функція має два параметри ім'я «хоста» де розташовується база даних, а другий ім'я користувача, що має право на з'єднання з базою (root – це користувач створюваний системою, що й має максимальні права). У другому рядку відбувається підключення до конкретної бази даних.

Наведені рядки будуть коректно працювати на локальному комп'ютері, якщо у вас установлений Denver, але при спробі перенести ваш сервіс на віддалений сервер відбудеться помилка, адже там база буде розташовуватися в іншому місці, права користувача також набудовує адміністратор і він вам не дасть прав адміністратора, виходить, ці два рядки прийде міняти. Причому міняти у всіх php -файлах даних, що використовують підключення до бази. Має сенс винести ці чотири рядки в окремий файл, назвати його connect.php а в основному php -файлі зробити посилання:

729,3

Це не помилка, для файлу, що зберігає підключення до бази даних краще використовувати розширення php. Уся справа в тому, що якщо ви використовуєте розширення .inc, браузер буде сприймати його як текстовий файл і якщо зловмисник набере в рядку адреси connect.inc він одержить ім'я бази даних і паролі до неї. Зміст php - файлу, буде приховано, сервер у відповідь на запит згенерує порожню html - сторінку.

Створення форми для введення даних

Для того, щоб ви могли заповнювати дані необхідно створити форму (лістинг 2).

Лістинг №2

729,4

Як видно з коду, дані вводяться в п'ять полів і при натисканні на кнопку «додати» змінні форми передаються в той же самий файл user. php .

Додавання даних у таблицю

Лістинг №3

729,5

Змінна «add» буде передана у файл user.php разом з іншими змінними і якщо це відбудеться, виконується чотири дії:

З форми будуть витягнуті всі змінні (у наведеному фрагменті вони передавалися методом GET).

Створюється строкова змінна $sql_add, що містить sql-запит. У ньому замість значень полів використовуються імена витягнутих змінних, у яких зберігається ім'я користувача, логін і т.д.. Кожна змінна взята в апострофи.

За допомогою функції mysql_query() виконується sql-запит. Аргументом цієї функції є рядок із запитом.

Друкується повідомлення про додавання нового користувача.

Виведення даних з таблиці на екран

Припустимо, що ви прагнете вивести на екран список зареєстрованих користувачів. При цьому не потрібно, виводити персональну інформацію, логін, пароль, досить тільки імена і електронні адреси. Для виводу даних можна використовувати наступний код (лістинг 4).

Лістинг №4

729,6 

Наведений фрагмент самий складний. Для більш легкого сприйняття його розбили на три частини.

У першій частині створюється текстова змінна $sql_select, у якій формується sql-запит на вибірку даних із сортуванням по полю «user_name». Зверніть увагу, в sql-запиті перераховані не всі, а тільки три поля, які нас цікавлять у вибірці. Після функція mysql_query() виконує цей запит, і результат затягає в змінну $result. Можна уявити собі, що в цій змінній зберігається не одне значення, а таблиця значень!

729,1-Схема-витягу-даних-з-таблиці

Рисунок 1. Схема витягу даних з таблиці

У другій частині за допомогою функцій mysql _ num _ rows () рахується кількість записів витягнутих з таблиці. Аргументом функції є змінна $result . Отриманий результат виводиться на екран.

У третій частині обрані дані виводяться на екран. Для цього змінна $result розбивається на рядки. Кожний рядок містить дані про один запис таблиці. Доти поки така розбивка можлива (використовується цикл while) кожна строка за допомогою функції mysql_fetch_array() розбивається на окремі значення і кожне значення заноситься в масив $row[] (рисунок 1).

Тепер ви можете виводити значення на екран. Зверніть увагу, на два моменти:

1. Для створення посилання необхідно використовувати тег <a href="/…">…</ a>. Але у символа лапки усередині функції print () своя робота – обмеження текстового рядка, який необхідно виводити на екран. Тому в наведеному лістингу перед лапками в тегу < a > використовується символ «зворотний слеш». Він маскує лапки html -тегу усередині текстового рядка.

2. Дії по видаленню даних з таблиці знаходяться в тому ж самому файлі user.php. Тому разом з адресою сторінки в тегу <a> передаються дві змінні act (тип дії) і id_user (ідентифікатор користувача, що знищується). Значення ідентифікатора береться з масиву $row[id_user].

Видалення даних з таблиці

Код для видалення даних з таблиці (лістинг 5) необхідно розташувати до коду виводу користувачів на екран. Справа в тому, що коли людина натисне посилання «вилучити», відбудеться перезавантаження файлу user . php і дані повинні бути вилучені з таблиці раніше, чим буде виконаний sql -запит на вибірку даних.

Лістинг №5

729,7

Програмний код виконується в тому випадку, якщо у файл передається змінна $act. У наведеному коді формується текстовий рядок з sql -запитом. Далі цей запит виконується за допомогою вже відомої функції mysql_query().

Отриманий програмний код недосконалий. Перелічимо головні недоліки:

Ви можете реєструвати того самого користувача багаторазово, дані будуть заноситися в таблицю, змінюючи тільки поле id _ user .

Ви можете реєструвати порожніх користувачів, адже в програмному коді немає перевірки.

Відсутня можливість змінювати введені дані.

Усі ці недоліки можна досить легко усунути, і це буде одним із практичних завдань.

Практичні завдання:

Створіть php -файл, який може додавати, видаляти/змінювати значення в базі даних «Клієнти».

Внесіть зміни в php -код, щоб програма перевіряла, чи введене ім'я користувача, його логін і тільки в цьому випадку вносила дані в таблицю.

(*) Створіть модифікований php -файл, у якому виправлені перераховані вище недоліки.

Питання для самоконтролю

1. Чому зручніше підключення до бази даних виводити в зовнішній файл і підключати його за допомогою функції include()?

2. Для чого при виводі даних використовується цикл While?

3. Чому код на видалення даних потрібно вставляти в початок сторінки?

4. Які нові функції ви вивчили в лабораторній роботі?