Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABS-all-OTIS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.5. Відображення даних, що зберігаються в MySql.

Щоб відобразити якісь дані в браузер за допомогою PHP, потрібно спочатку одержати ці дані у вигляді змінних PHP. При роботі з MySQL без посередника (такого, як PHP) вибірка даних робиться за допомогою команди SELECT мови SQL:

mysql> SELECT * FROM Artifacts;

У попередньому пункті ми бачили, що будь-який запит, у тому числі й на вибірку, можна відправити на сервер за допомогою функції mysql_query(); Там у нас була дещо інша задача - одержати дані з форми й відправити їх за допомогою запиту на вставку в базу даних. Результатом роботи mysql_query() там міг бути лише один з виразів, TRUE або FALSE. Тепер же потрібно відправити запит на вибірку всіх полів, а результат відобразити в браузері. І тут результат - це ціла таблиця значень, а точніше, вказівник на цю таблицю. Отже потрібні якісь аналоги функції mysql_field_name(), тільки щоб вони одержували з результату запиту не ім'я, а значення поля. Таких функцій у PHP декілька. Найбільш популярні - mysql_result() і mysql_fetch_array().

Синтаксис mysql_result:

змішане mysql_result (ресурс result, ціле row [, змішане field])

mysql_result() повертає значення однієї комірки результату запиту. Аргумент field може бути порядковим номером поля в результаті, ім'ям поля або ім'ям поля з ім'ям таблиці через крапку tablename.fieldname. Якщо для імені поля в запиті застосовувався аліас ('select foo as bar from...'), використовуйте його замість реального імені поля.

Працюючи з великими результатами запитів, варто задіяти одну з функцій, що обробляє відразу цілий ряд результатів (наприклад, mysql_fetch_row(), mysql_fetch_array() і т.д.). Тому що ці функції повертають значення декількох комірок відразу, вони НАБАГАТО швидші mysql_result(). Крім того, потрібно врахувати, що вказівка чисельного зсуву (номера поля) працює набагато швидше, ніж вказівка стовпчика або стовпчиків і таблиці через крапку.

Виклики функції mysql_result() не повинні змішуватися з іншими функціями, що працюють з результатом запиту.

Синтаксис mysql_fetch_array:

масив mysql_fetch_array (ресурс result [, ціле result_type])

Ця функція обробляє ряд результатів запиту, повертаючи масив (асоціативний, чисельний або обидва) з обробленим рядом результатів запиту, або FALSE, якщо рядів більше немає.

mysql_fetch_array() - це розширена версія функції mysql_fetch_row(). Крім збереження значень у масиві з чисельними індексами, функція повертає значення в масиві з індексами за назвою стовпчиків.

Якщо декілька стовпчиків у результаті будуть мати однакові назви, буде повернутий останній стовпчик. Щоб одержати доступ до перших, варто використовувати чисельні індекси масиву або аліаси в запиті. У випадку аліасів ви не зможете використовувати дійсні імена стовпчиків, як, наприклад, не зможете використовувати "photo" в описаному нижче прикладі.

select Artifacts.photo as art_image, Persons.photo as pers_image from Artifacts, Persons

Важливо зауважити, що mysql_fetch_array() працює НЕ повільніше, ніж mysql_fetch_row(), і надає більш зручний доступ до даних.

Другий опційний аргумент result_type у функції mysql_fetch_array() є константою й може приймати наступні значення: MYSQL_ASSOC, MYSQL_NUM і MYSQL_BOTH. Ця можливість додана в PHP 3.0.7. Значенням за замовчуванням є: MYSQL_BOTH.

Використовуючи MYSQL_BOTH, одержимо масив, що складається як з асоціативних індексів, так і з чисельних. MYSQL_ASSOC поверне тільки асоціативні відповідності, а MYSQL_NUM - тільки чисельні.

У теоретичні частині ми розглянули дві задачі: додавання даних у базу даних і їх відображення в браузері за допомогою мови PHP. Для цього ми розглянули ряд функцій, що дозволяють відправляти SQL-запити до бази даних і обробляти отримані відповіді. Використовуючи наведену технологію, можна розв’язати цілий ряд схожих задач, таких як задачі зміни і видалення даних, задачі маніпулювання таблицями бази даних (тобто їхнє створення, зміна і знищення) і т.п. Усе це типові задачі, що виникають при розробці систем керування даними, і вміння їх розв’язувати, як і вміння працювати з базами даних у цілому, дуже важливі для web-програміста.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]