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

2.2. Одержання списку полів таблиці

Тепер можна зайнятися власне розв’язанням задачі. Як одержати список полів таблиці? Дуже просто. У PHP і на цей випадок є своя команда - mysql_list_fields.

Синтаксис mysql_list_fields:

ресурс mysql_list_fields (рядок database_name, рядок table_name[, ресурс link_identifier])

Ця функція повертає список полів у таблиці table_name у базі даних database_name. Отже, вибирати базу даних нам було необов'язково, але це знадобиться пізніше. Як можна помітити, результат роботи цієї функції - змінна типу ресурс. Тобто це не зовсім те, що ми хотіли отримати. Це посилання, яке можна використовувати для одержання інформації про поля таблиці, включаючи їх назви, типи і прапори.

Функція mysql_field_name повертає ім'я поля, отриманого в результаті виконання запиту. Функція mysql_field_len повертає довжину поля. Функція mysql_field_type повертає тип поля, а функція mysql_field_flags повертає список прапорів поля, записаних через пробіл. Типи полів можуть бути int, real, string, blob і т.д. Прапори можуть бути not_null, primary_key, unique_key, blob, auto_increment і т.д.

Синтаксис у всіх цих команд однаковий:

рядок mysql_field_name (ресурс result, ціле field_offset)

рядок mysql_field_type (ресурс result, ціле field_offset)

рядок mysql_field_flags (ресурс result, ціле field_offset)

рядок mysql_field_len (ресурс result, ціле field_offset)

Тут result - це ідентифікатор результату запиту (наприклад, запиту, відправленого функціями mysql_list_fields або mysql_query (про неї буде розказано пізніше)), а field_offset - порядковий номер поля в результаті.

Функції mysql_list_fields або mysql_query, являють собою таблицю, а точніше, вказівник на неї. Щоб одержати з цієї таблиці конкретні значення, потрібно задіяти спеціальні функції, що порядково читають цю таблицю. До таких функцій і відносяться mysql_field_name і т.п. Щоб перебрати всі рядки в таблиці результату виконання запиту, потрібно знати кількість рядків у цій таблиці. Команда mysql_num_rows(ресурс result) повертає кількість рядків у безлічі результатів result.

А тепер спробуємо одержати список полів таблиці Artifacts (колекція експонатів).

<?

$conn = mysql_connect("localhost","nina","123")

or die("Неможливо встановити з'єднання: ".mysql_error());

echo "З'єднання встановлене";

mysql_select_db("book");

$list_f = mysql_list_fields ("book","Artifacts",$conn);

$n = mysql_num_fields($list_f);

for($i=0; $i<$n; $i++){

$type = mysql_field_type($list_f, $i);

$name_f = mysql_field_name($list_f,$i);

$len = mysql_field_len($list_f, $i);

$flags_str = mysql_field_flags ($list_f, $і);

echo "<br>Ім'я поля: ".$name_f;

echo "<br>Тип поля: ".$type;

echo "<br>Довжина поля: ".$len;

echo "<br>Рядок прапорів поля: ".$flags_str . "<hr>"; }

?>

У результаті повинно вийти приблизно наступне (якщо в таблиці всього два поля, звичайно):

Ім'я поля: id

Тип поля: int

Довжина поля: 11

Рядок прапорів поля: not_null primary_key auto_increment

Ім'я поля: title

Тип поля: string

Довжина поля: 255

Рядок прапорів поля:

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