
- •Лабораторна робота № 1 Створення концептуальних схем
- •Теоретична частина
- •Завдання
- •Контрольні запитання
- •Перелік рекомендованої літератури
- •Лабораторна робота № 2 Етапи розробки бази даних
- •Теоретична частина
- •Завдання
- •Контрольні запитання
- •Перелік рекомендованої літератури
- •Лабораторна робота № 3 Проектування баз даних
- •Теоретична частина
- •Завдання
- •Хід виконання роботи
- •Перелік рекомендованої літератури
- •Лабораторна робота № 5 Використання баз даних MySql при створенні веб-ресурсів
- •Теоретична частина
- •1. Особливості бд MySql
- •2. Встановлення і початок роботи з бд MySql
- •1.3. Основні команди керування бд MySql за допомогою мови sql
- •Хід виконання роботи
- •Завдання
- •Контрольні запитання
- •Перелік рекомендованої літератури
- •Додаток а. Основні функції mySql
- •Додаток б. Типи даних mySql:
- •Лабораторна робота № 6 Керування базами даних MySql за допомогою php
- •Теоретична частина
- •1. Вступ у php
- •2. Взаємодія з базою даних MySql
- •2.1. Встановлення з'єднання із бд
- •2.2. Одержання списку полів таблиці
- •2.3. Відображення списку полів у html-формі
- •2.4. Запис даних у базу даних
- •2.5. Відображення даних, що зберігаються в MySql.
- •Хід виконання роботи
- •Завдання
- •Контрольні запитання
- •Перелік рекомендованої літератури
2.3. Відображення списку полів у html-формі
Тепер дещо підкоректуємо попередній приклад. Будемо не просто виводити інформацію про поле, а відображати його як потрібний елемент html-форми. Так, елементи типу BLOB переведемо в textarea (помітимо, що поле description, що ми створювали з типом TEXT, відображається як таке, що має тип BLOB), числа й рядки відобразимо як текстові рядки введення <input type=text>, а елемент, що має мітку автоінкремента, взагалі не будемо відображати, оскільки його значення встановлюється автоматично.
Усе це розв’язується досить просто, за винятком виділення зі списку прапорів прапора auto_increment. Для цього потрібно скористатися функцією explode.
Синтаксис explode:
масив explode(рядок separator, рядок string [, int limit])
Ця функція розбиває рядок string на частини за допомогою роздільника separator і повертає масив отриманих рядків.
У нашому випадку як роздільник потрібно взяти пробіл " ", а як задану стрічку для розбивки - рядок прапорів поля.
Отже, створимо форму для введення даних у таблицю Artifacts:
<?
$conn=mysql_connect("localhost","nina","123"); // встановлюємо з’єднання
$database = "book";
$table_name = "Artifacts";
mysql_select_db($database); // обираємо базу даних для роботи
$list_f = mysql_list_fields($database,$table_name);
// отримуємо список полів в базі
$n = mysql_num_fields($list_f);
// кількість стрічок в результаті попереднього запиту
//тобто скільки всього полів в таблиці Artifacts)
echo "<form method=post action=insert.php>";
// створюємо форму для введення даних
echo "<TABLE BORDER=0 CELLSPACING=0 width=50%><tr>
<TD BGCOLOR='#005533' align=center>
<font color='#FFFFFF'>
<b> Add new row in $table_name</b>
</font></td></tr>
<tr><td></td></tr></TABLE>";
echo "<table border=0 CELLSPACING=1 cellpadding=0 width=50% >";
// для кожного поля отримуємо його ім’я, тип, довжину й прапори
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, $i);
// із стрічки прапорів робимо масив, де кожен елемент масиву – прапор поля,
$flags = explode(" ", $flags_str);
foreach ($flags as $f){
if ($f == 'auto_increment') $key = $name_f;
// запам’ятовуємо ім’я інкремента
}
/* для кожного поля, що не є автоінкрементом, в
залежності від його типу виводимо потрібний елемент форми */
if ($key <> $name_f){
echo "<tr><td align=right bgcolor='#C2E3B6'>
<font size=2><b> ". $name_f ."</b></font>
</td>";
switch ($type){
case "string":
$w = $len/5;
echo "<td><input type=text name=\"$name_f\" size = $w ></td>";
break;
case "int":
$w = $len/4;
echo "<td><input type=text name=\"$name_f\" size = $w ></td>";
break;
case "blob":
echo "<td><textarea rows=6 cols=60 name=\"$name_f\"></textarea></td>";
break;
}
}
echo "</tr>";
echo "</table>";
echo "<input type=submit name='add' value='Add'>";
echo "</form>";
?>