Лабораторне заняття 11. SQL-запити на отримання даних. Прив’язка функціоналу PHP до HTML-сторінки

Мета роботи: ознайомитися з можливостями взаємодії PHP та MySQL для отримання записів з бази даних та виведення їх на сторінку.

Теоретичні відомості

PHP – скриптова мова програмування, створена для генерації HTML-сторінок на стороні веб-сервера. PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок (разом із Java, .NET, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів.

Всі PHP-сценарії оформлюються у вигляді блоків коду. Ці блоки можуть бути поміщені в HTML-код, але відділені від нього відповідними обмежувачами. PHP-код в HTML повинен знаходитись між тегами <?php та ?>:

<html>

  <head>

    <title>Тестуємо PHP</title>

  </head>

  <body>

    <?php echo 'Hello, world!'; ?>

  </body>

</html>

Інструкції в PHP відокремлюються символом ;. Перед закінченням скрипту (перед тегом ?>) крапку з комою ставити необов'язково.

MySQLi (MySQL Improved) – розширення драйвера реляційної бази даних, який використовується в мові програмування PHP. На відміну від попередньої версії має ряд поліпшень та рекомендується для використання розробниками PHP замість класичного mysql.

Для отримання даних з бази даних MySQL використовується мова запитів SQL та функції мові PHP. Для початку необхідно здійснити підключення до існуючої бази даних. Для цього використовується функція mysqli_connect:

mysqli_connect(host, user, password, dbname);

Дана функція встановлює з’єднання з базою даних та приймає наступні параметри:

  • host – визначає ім’я хоста або IP-адресу сервера, де встановлена база даних. Найчастіше використовується значення localhostале краще переглянути цю інформацію в хостинг-панелі;
  • user – ім’я користувача MySQL;
  • password – пароль до бази даних;
  • dbname – ім’я бази даних.

У випадку успішного з’єднання, функція повертає значення типу Об’єкт, в іншому випадку – значення false. Варто це враховувати та робити перевірку, перш ніж переходити до наступних дій.

Після підключення до бази даних, можна отримувати даті з потрібної таблиці. Для цього необхідно сформувати SQL-запит на вибірку:

SELECT column_list FROM table_name

Мова SQL не чутлива до регістру літер, однак часто оператори записуються великими літерами, щоб виділити їх в запиті.

Оператор SELECT використовується для отримання набору даних з таблиці. Після нього потрібно вказати перелік полів, дані з яких будуть отримуватися. Далі йде ключове слово FROM та назва таблиці. Приклад запиту:

SELECT namevalue FROM table1

В даному випадку було сформовано запит на отримання даних полів name та value з таблиці table1. Іноді назви таблиць чи полів можуть збігатися з ключовими словами, тому рекомендується заключати їх у зворотні лапки:

SELECT `name`, `value` FROM `table1`

Якщо потрібно вибрати всі поля з бази – замість переліку полів потрібно вказати символ *.

Для того, щоб отримати дані, відсортовані за певним полем, використовується ключове слово ORDER:

SELECT * FROM `table1` ORDER BY `name` ASC

В даному випадку дані будуть відсортовані за полем name у порядку зростання. Для сортування за спаданням використовується ключове слово DESC.

Наступний етап – отримання результатів запиту на вибірку за допомогою функції mysqli_query:

mysqli_query(linkquery)

В результаті виконання функція повертає значення false, якщо запит виконати не вдалося, об’єкт mysqli_result – при виконанні запитів SELECT або true – при виконанні інших запитів.

Параметр link – ідентифікатор з’єднання, отриманий за допомогою функції mysqli_connectquery – текст запиту.

Об’єкт mysqli_result – результуючий набір даних, отриманий із запиту до бази. Фактично, це дані у вигляді таблиці (як це реалізовано в базі даних). Щоб отримати дані потрібного поля, необхідно звернутися спочатку до рядка таблиці і лише тоді – до поля та його значення. Наприклад:

for ($i = 0; $i < mysqli_num_rows($query); $i++) {

$fetch = mysqli_fetch_array($query);

echo "<li>$fatch[name]</li>";

}

В даному прикладі виводиться список значень поля name за допомогою масиву for. Кількість рядків таблиці визначається функцією mysqli_num_rows.

Функція mysqli_fetch_array отримує рядок з вказаного набору даних та формує з них асоціативний масив (який записується в змінну $fetch). При повторному виклику функції буде отримано наступний рядок. Тепер можна звертатися до елементів масиву за іменами полів ($fatch[name]).

За допомогою функції echo можна вивести як значення полів так і елементи оформлення HTML, що надає змогу формувати потрібний вигляд веб-сторінки.

Остання зміна: Thursday 28 May 2020 23:23 PM