41624

Робота з операторами INSERT, UPDATE, DELETE

Лабораторная работа

Информатика, кибернетика и программирование

VLUES із списком з декількох значень підтримується у версії MySQL 3. Синтаксис виразу col_nme=expression підтримується у версії MySQL 3. У MySQL завжди передбачено значення за умовчанням для кожного поля. Ця вимога нав'язана MySQL щоб забезпечити можливість роботи як з таблицями які підтримують транзакції так і з таблицями що не підтримують їх.

Украинкский

2013-10-24

47.12 KB

2 чел.

13

Лабораторна робота №8

Тема: Робота з операторами INSERT, UPDATE, DELETE.

Мета: ознайомитись з операторами INSERT, UPDATE, DELETE та навчитися використовувати їх на практиці.

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

Синтаксис оператора INSERT

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

       [INTO] tbl_name [(col_name,..)]

       VALUES (expression,..)(..),..

чи

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

       [INTO] tbl_name [(col_name,..)]

       SELECT ..

чи

INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

       [INTO] tbl_name

       SET col_name=expression, col_name=expression, ..

чи

INSERT INTO ім’я_таблиці [(Список полів)] VALUES (Список констант);

Оператор INSERT вставляє нові рядки в існуючу таблицю. Форма цієї команди INSERT .. VALUES вставляє рядки відповідно до точно вказаних в команді значень. Форма INSERT .. SELECT вставляє рядки, вибрані з іншої таблиці або таблиць. Форма INSERT .. VALUES із списком з декількох значень підтримується у версії MySQL 3.22.5 і пізніших. Синтаксис виразу col_name=expression підтримується у версії MySQL 3.22.10 і пізніших.

tbl_name задає таблицю, в яку мають бути внесені рядки. Стовпці, для яких задані величини в команді, вказуються в списку імен стовпців або в частині SET. Якщо не вказаний список стовпців для INSERT .. VALUES або INSERT .. SELECT, то величини для усіх стовпців мають бути визначені в списку VALUES() або в результаті роботи SELECT. Якщо порядок стовпців в таблиці невідомий, для його отримання можна використовувати DESCRIBE tbl_name.

Будь-який стовпець, для якого явно не вказано значення, буде встановлений у своє значення за умовчанням. Наприклад, якщо в заданому списку стовпців не вказані усі стовпці в цій таблиці, то не згадані стовпці встановлюються у свої значення за умовчанням. У MySQL завжди передбачено значення за умовчанням для кожного поля. Ця вимога "нав'язана" MySQL, щоб забезпечити можливість роботи як з таблицями, які підтримують транзакції, так і з таблицями, що не підтримують їх.

Вираз expression може відноситься до будь-якого стовпця, який раніше був внесений до списку значень. Наприклад, можна вказати наступне:

mysql> INSERT INTO tbl_name (col1, col2) VALUES(15, col1*2);

Але не можна вказати:

mysql> INSERT INTO tbl_name (col1, col2) VALUES(col2*2,15);

Якщо вказується ключове слово LOW_PRIORITY, то виконання цієї команди INSERT буде затримано до тих пір, поки інші клієнти не завершать читання цієї таблиці. В цьому випадку цей клієнт повинен чекати, поки ця команда вставки не буде завершена, що у разі інтенсивного використання таблиці може потребувати значного часу. Напротивагу цьому команда INSERT DELAYED дозволяє цьому клієнтові продовжувати операцію відразу ж.

Слід зазначити, що покажчик LOW_PRIORITY зазвичай не використовується з таблицями MyISAM, оскільки при його вказівці стають неможливими паралельні вставки.

Якщо в команді INSERT з рядками, що мають багато значень, вказується ключове слово IGNORE, то усі рядки, що мають ключі PRIMARY або UNIQUE, що дублюються, в цій таблиці, будуть проігноровані і не будуть внесені. Якщо не вказувати IGNORE, то ця операція вставки припиняється при виявленні рядка, що має значення існуючого ключа, що дублюється. Кількість рядків, внесених до цієї таблиці, можна визначити за допомогою функції C API mysql_info().

Якщо MySQL був конфігурований з використанням опції DONT_USE_DEFAULT_FIELDS, то команда INSERT генеруватиме помилку, якщо явно не вказати величини для усіх стовпців, які вимагають значень не-NULL.

За допомогою функції mysql_insert_id можна знайти величину, використану для стовпця AUTO_INCREMENT.

Якщо задається команда INSERT .. SELECT або INSERT .. VALUES із списками з декількох значень, то для отримання інформації про цей запит можна використовувати функцію C API mysql_info(). Формат цього інформаційного рядка приведений нижче:

Records: 100 Duplicates: 0 Warnings: 0

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

Внесення NULL до стовпця, який був оголошений, як NOT NULL 

Цей стовпець встановлюється в значення, задане за умовчанням.

Установка числового стовпця в значення, що лежить за межами його допустимого діапазону

Ця величина усікається до відповідної кінцевої точки цього діапазону.

Занесення в числовий стовпець такої величини, як '10.34 a'

Кінцеві дані вилучаються і вноситься числова частина, що тільки залишилася. Якщо величина зовсім не має сенсу як число, то стовпець встановлюється в 0.

Внесення до стовпців типу CHAR, VARCHAR, TEXT або BLOB рядка, що перевершує максимальну довжину стовпця

Ця величина усікається до максимальної довжини стовпця.

Внесення до стовпця дати або часу рядка, неприпустимого для цього типу стовпця

Цей стовпець встановлюється в нульову величину, відповідну цьому типу.

Синтаксис оператора UPDATE

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name

       SET col_name1=expr1 [, col_name2=expr2, ..]

       [WHERE where_definition]

       [LIMIT #]

UPDATE Ім’я_таблиці SET Поле1 = Значення1, ... , ПолеN = ЗначенняN [WHERE Умова];

Оператор UPDATE оновлює стовпці відповідно до їх нових значень в рядках існуючої таблиці. У виразі SET вказується, які саме стовпці слід модифікувати і які величини мають бути в них встановлені. У виразі WHERE, якщо він присутній, задається, які рядки підлягають оновленню. У інших випадках оновлюються усі рядки. Якщо заданий вираз ORDER BY, то рядки оновлюватимуться у вказаному в ньому порядку.

Якщо вказується ключове слово LOW_PRIORITY, то виконання цієї команди UPDATE затримується до тих пір, поки інші клієнти не завершать читання цієї таблиці.

Якщо вказується ключове слово IGNORE, то команда оновлення не буде перервана, навіть якщо при оновленні виникне помилка дублювання ключів. Рядки, із-за яких виникають конфліктні ситуації, оновлені не будуть.

Якщо доступ до стовпця з вказаного вираження здійснюється по аргументу tbl_name, то команда UPDATE використовує для цього стовпця його поточне значення. Наприклад, наступна команда встановлює стовпець age в значення, на одиницю більше його поточної величини:

mysql> UPDATE persondata SET age=age+1;

Значення команда UPDATE привласнює зліва направо. Наприклад, наступна команда дублює стовпець age, потім інкрементує його:

mysql> UPDATE persondata SET age=age*2, age=age+1;

Якщо стовпець встановлюється в його поточне значення, то MySQL помічає це і не оновлює його.

Команда UPDATE повертає кількість фактично змінених рядків. У версії MySQL 3.22 і пізніших функція C API mysql_info() повертає кількість рядків, які були знайдені і оновлені, і кількість попереджень, що мали місце при виконанні UPDATE.

У версії MySQL 3.23 можна використовувати LIMIT #, щоб переконатися, що було змінено тільки задану кількість рядків.

Синтаксис оператора DELETE

DELETE [LOW_PRIORITY | QUICK] FROM table_name

             [WHERE where_definition]

             [ORDER BY ..]

             [LIMIT rows]

чи

DELETE [LOW_PRIORITY | QUICK] table_name[.*] [,table_name[.*] ..]

             FROM table - references

             [WHERE where_definition]

чи

DELETE [LOW_PRIORITY | QUICK]

             FROM table_name[.*], [table_name[.*] ..]

             USING table - references

             [WHERE where_definition]

Оператор DELETE видаляє з таблиці table_name рядки, що задовольняють заданим в where_definition умовам, і повертає число видалених записів.

Якщо оператор DELETE запускається без визначення WHERE, то вилучаються усі рядки.

Якщо дійсно необхідно знати число видалених записів при видаленні усіх рядків, і якщо допустимі втрати в швидкості, то можна використовувати команду DELETE в наступній формі:

mysql> DELETE FROM table_name WHERE 1>0;

Слід враховувати, що ця форма працює набагато повільніше, ніж DELETE FROM table_name без виразу WHERE, оскільки рядки вилучаються по черзі по одному.

Якщо вказано ключове слово LOW_PRIORITY, виконання цієї команди DELETE буде затримано до тих пір, поки інші клієнти не завершать читання цієї таблиці.

Якщо заданий параметр QUICK, то обробник таблиці при виконанні видалення не об'єднуватиме індекси - в деяких випадках це може прискорити цю операцію.

У таблицях MyISAM видалені записи зберігаються в пов'язаному списку, а наступні операції INSERT повторно використовують місця, де розташовувалися видалені записи. Щоб повернути невживаний простір і зменшити розмір файлів, можна застосувати команду OPTIMIZE TABLE або утиліту myisamchk для реорганізації таблиць. Команда OPTIMIZE TABLE простіша, але утиліта myisamchk працює швидше.

Перший з числа приведених на початку цього розділу багатотабличний формат команди DELETE підтримується, починаючи з MySQL 4.0.0. Другий багатотабличний формат підтримується, починаючи з MySQL 4.0.2.

Ідея полягає в тому, що видаляються тільки співпадаючі рядки з таблиць, перерахованих перед виразами FROM або USING. Це дозволяє видаляти одноразово рядки з декількох таблиць, а також використовувати для пошуку додаткові таблиці.

Символи .* після імен таблиць вимагаються тільки для сумісності з Access:

DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id

чи

DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id

У попередньому випадку просто видалені співпадаючі рядки з таблиць t1 і t2.

Вираз ORDER BY і використання декількох таблиць в команді DELETE підтримується в MySQL 4.0.

Якщо застосовується вираження ORDER BY, то рядки будуть видалені у вказаному порядку. Насправді цей вираз корисний тільки у поєднанні з LIMIT. Наприклад:

DELETE FROM somelog

               WHERE user = 'jcole'

               ORDER BY timestamp

               LIMIT 1

Цей оператор видалить найстаріший запис (по timestamp), в якому рядок відповідає вказаною у виразі WHERE.

Специфічна для MySQL опція LIMIT для команди DELETE вказує серверу максимальну кількість рядків, які слід видалити до повернення управління клієнтові. Ця опція може використовуватися для гарантії того, що ця команда DELETE не зажадає надто багато часу для виконання. Можна просто повторювати команду DELETE до тих пір, поки кількість видалених рядків менша, ніж величина LIMIT.

Хід роботи :

1. Відкрити phpMyAdmin  і створити базу з назвою "test_base", кодування вибрати "charset=UTF-8".

2. Створити таблицю з назвою "test_table":

create table test_table(

id int(11) not null auto_increment,

name varchar(255) not null,

email varchar(255) not null,

theme varchar(255) not null,

message text not null,

data date not null,

primary key (id)

);

3. Створити форму:

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Форма с сохранением в MySQL</title>

<style type="text/css">

<!--

body {

 font: 12px Georgia;

 color: #666666;

}

h3 {

 font-size: 16px;

 text-align: center;

}

table {

 width: 400px;

 border-collapse: collapse;

 margin: 0px auto;

 background: #E6E6E6;

}

td {

 padding: 3px;

}

input {

 width: 250px;

 border: solid 1px #CCCCCC;

}

textarea {

 width: 250px;

 height: 100px;

 border: solid 1px #CCCCCC;

}

.buttons {

 width: auto;

 border: double 1px #666666;

 background: #D6D6D6;

}

-->

</style>

</head>

<body>

 <h3>Пример формы с сохранением данных в MySQL</h3>

 <form action="save_form.php" method="post" name="test_form">

 <table border="1" cellpadding="0" cellspacing="0">

  <tr>

   <td colspan="2" align="center"><strong>Отправка

     запроса</strong>

   </td>

  </tr>

  <tr>

   <td width="150">Имя :</td>

   <td><input type="text" name="test_name" maxlength="30" />

   </td>

  </tr>

  <tr>

   <td width="150">E-Mail :</td>

   <td><input type="text" name="test_mail" maxlength="30" />

   </td>

  </tr>

  <tr>

   <td width="150">Тема сообщения :</td>

   <td><input type="text" name="test_theme" maxlength="30" />

   </td>

  </tr>

  <tr>

   <td width="150">Сообщение :</td>

   <td><textarea name="test_mess"></textarea>

   </td>

  </tr>

  <tr>

   <td colspan="2" align="center"><input type="submit"

    class="buttons" value="Отправить запрос" /> <input type="reset"

    class="buttons" value="Очистить" /></td>

  </tr>

 </table>

 </form>

 <form action="view_data.php" method="post" name="view_result">

 <table>

  <tr>

   <td align="center"><input type="submit" class="buttons"

    value="Посмотреть ранее сохраненные данные" />

   </td>

  </tr>

 </table>

 </form>

 <form action="del_data.php" method="post" name="delete_data">

 <table>

  <tr>

   <td align="center"><input type="submit" class="buttons"

    value="Удаление данных" />

   </td>

  </tr>

 </table>

 </form>

 <form action="update_data.php" method="post" name="update_data">

 <table>

  <tr>

   <td align="center"><input type="submit" class="buttons"

    value="Редактирование и обновление данных" />

   </td>

  </tr>

 </table>

 </form>

</body>

</html>

4. Створити  обробник форми "save_form.php" із збереженням отриманих даних в MySQL:

save_form.php:

<?php

/* Соединяемся с базой данных */

$hostname = "localhost"; // название/путь сервера, с MySQL

$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")

$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)

$dbName = "test_base"; // название базы данных

/* Таблица MySQL, в которой будут храниться данные */

$table = "test_table";

/* Создаем соединение */

mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */

mysql_select_db($dbName) or die (mysql_error());

/* Определяем текущую дату */

$cdate = date("Y-m-d");

/* Составляем запрос для вставки информации в таблицу

name...date - название конкретных полей в базе;

в $_POST["test_name"]... $_POST["test_mess"] - в этих переменных содержатся данные, полученные из формы */

$query = "INSERT INTO $table SET name='".$_POST['test_name']."', email='".$_POST["test_mail"]."',

theme='".$_POST["test_theme"]."', message='".$_POST["test_mess"]."', data='$cdate'";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */

mysql_query($query) or die(mysql_error());

/* Закрываем соединение */

mysql_close();

/* В случае успешного сохранения выводим сообщение и ссылку возврата */

echo ("<div style=\"text-align: center; margin-top: 10px;\">

<font color=\"green\">Данные успешно сохранены!</font>

 

<a href=\"index.html\">Вернуться назад</a></div>");

?>

5. Реалізувати вивід збережених даних:

view_data.php:

<?php

/* Соединяемся с базой данных */

$hostname = "localhost"; // название/путь сервера, с MySQL

$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")

$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)

$dbName = "test_base"; // название базы данных

/* Таблица MySQL, в которой хранятся данные */

$table = "test_table";

/* Создаем соединение */

mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */

mysql_select_db($dbName) or die (mysql_error());

/* Составляем запрос для извлечения данных из полей "name", "email", "theme",

"message", "data" таблицы "test_table" */

$query = "SELECT id, name, email, theme, message, data FROM $table";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */

$res = mysql_query($query) or die(mysql_error());

/* Выводим данные из таблицы */

echo ("

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

 

<head>

 

   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />

 

   <title>Вывод данных из MySQL</title>

 

<style type=\"text/css\">

<!--

body { font: 12px Georgia; color: #666666; }

h3 { font-size: 16px; text-align: center; }

table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }

td { padding: 3px; text-align: center; vertical-align: middle; }

.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }

-->

</style>

 

</head>

 

<body>

 

<h3>Вывод ранее сохраненных данных из таблицы MySQL</h3>

 

<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">

<tr style=\"border: solid 1px #000\">

 <td><b>#</b></td>

 <td align=\"center\"><b>Дата обращения</b></td>

 <td align=\"center\"><b>Имена пользователей</b></td>

 <td align=\"center\"><b>E-Mail пользователей</b></td>

 <td align=\"center\"><b>Тема сообщения</b></td>

 <td align=\"center\"><b>Сообщения пользователей</b></td>

</tr>

");

/* Цикл вывода данных из базы конкретных полей */

while ($row = mysql_fetch_array($res)) {

 echo "<tr>\n";

 echo "<td>".$row['id']."</td>\n";

 echo "<td>".$row['data']."</td>\n";

 echo "<td>".$row['name']."</td>\n";

 echo "<td>".$row['email']."</td>\n";

 echo "<td>".$row['theme']."</td>\n";

 echo "<td>".$row['message']."</td>\n</tr>\n";

}

echo ("</table>\n");

/* Закрываем соединение */

mysql_close();

/* Выводим ссылку возврата */

echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

?>

6. Реалізувати  видалення записів з бази даних:

del_data.php:

<?php

/* Соединяемся с базой данных */

$hostname = "localhost"; // название/путь сервера, с MySQL

$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")

$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)

$dbName = "test_base"; // название базы данных

/* Таблица MySQL, в которой хранятся данные */

$table = "test_table";

/* Создаем соединение */

mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */

mysql_select_db($dbName) or die (mysql_error());

/* Заносим в переменную $res всю базу данных */

$query = "SELECT * FROM $table";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */

$res = mysql_query($query) or die(mysql_error());

/* Узнаем количество записей в базе данных */

$row = mysql_num_rows($res);

/* Выводим данные из таблицы */

echo ("

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />

    <title>Вывод и удаление данных из MySQL</title>

<style type=\"text/css\">

<!--

body { font: 12px Georgia; color: #666666; }

h3 { font-size: 16px; text-align: center; }

table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }

td { padding: 3px; text-align: center; vertical-align: middle; }

.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }

-->

</style>

</head>

<body>

<h3>Вывод и удаление ранее сохраненных данных из таблицы MySQL</h3>

<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">

<tr style=\"border: solid 1px #000\">

 <td><b>#</b></td>

 <td align=\"center\"><b>Дата обращения</b></td>

 <td align=\"center\"><b>Имена пользователей</b></td>

 <td align=\"center\"><b>E-Mail пользователей</b></td>

 <td align=\"center\"><b>Тема сообщения</b></td>

 <td align=\"center\"><b>Сообщения пользователей</b></td>

 <td align=\"center\"><b>Удаление</b></td>

</tr>

");

/* Цикл вывода данных из базы конкретных полей */

while ($row = mysql_fetch_array($res)) {

 echo "<tr>\n";

 echo "<td>".$row['id']."</td>\n";

 echo "<td>".$row['data']."</td>\n";

 echo "<td>".$row['name']."</td>\n";

 echo "<td>".$row['email']."</td>\n";

 echo "<td>".$row['theme']."</td>\n";

 echo "<td>".$row['message']."</td>\n";

 /* Генерируем ссылку для удаления поля */

 echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n";

 echo "</tr>\n";

}

echo ("</table>\n");

if (isset($_GET['del'])) {

 /* Если была нажата ссылка удаления, удаляем запись */

$del = $_GET['del'];

$del = $query = "delete from $table where (id='$del')";

 /* Выполняем запрос. Если произойдет ошибка - вывести ее. */}

mysql_query($query) or die(mysql_error());

 /* Закрываем соединение */

mysql_close();

 /* Выводим ссылку возврата */

 echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

 ?>

7. Реалізувати редагування і оновлення записів в базі:

update_data.php:

<?

/* Соединяемся с базой данных */

$hostname = "localhost"; // название/путь сервера, с MySQL

$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")

$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)

$dbName = "test_base"; // название базы данных

/* Таблица MySQL, в которой хранятся данные */

$table = "test_table";

/* Создаем соединение */

mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */

mysql_select_db($dbName) or die (mysql_error());

/* Если была нажата кнопка редактирования, вносим изменения */

if(@$submit_edit) {

$query = "UPDATE $table SET name='$test_name', email='$test_mail', theme='$test_theme', message='$test_mess' WHERE id='$update'";

 /* Выполняем запрос. Если произойдет ошибка - вывести ее. */

mysql_query($query) or die (mysql_error());

}

/* Заносим в переменную $res всю базу данных */

$query = "SELECT * FROM $table";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */

$res = mysql_query($query) or die(mysql_error());

/* Узнаем количество записей в базе данных */

$row = mysql_num_rows($res);

/* Выводим данные из таблицы */

echo ("

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />

   <title>Редактирование и обновление данных</title>

<style type=\"text/css\">

<!--

body { font: 12px Georgia; color: #666; }

h3 { font-size: 16px; text-align: center; }

table { width: 400px; border-collapse: collapse; margin: 5px auto; background: #E6E6E6; }

td { padding: 3px; vertical-align: middle; }

input { width: 250px; border: solid 1px #CCC; color: #FF6666; }

textarea { width: 250px; height: 100px; border: solid 1px #CCC; color: #FF6666; }

.buttons { width: auto; border: double 1px #666; background: #D6D6D6; color: #000; }

#num { width: 20px; text-align: right; margin-right: 5px; float: right; }

-->

</style>

</head>

<body>

<h3>Редактирование и обновление данных в таблице MySQL</h3>

");

/* Цикл вывода данных из базы конкретных полей */

while ($row = mysql_fetch_array($res)) {

 echo "<form action=\"update_data.php\" method=\"post\" name=\"edit_form\">\n";

 echo "<input type=\"hidden\" name=\"update\" value=\"".$row["id"]."\" />\n";

 echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n";

 echo "<tr>\n";

 echo "<td colspan=\"2\" style=\"border-bottom:solid 1px #CCCCCC;\"><b><i><div id=\"num\">#".$row["id"]."</div>".$row['data']."</b></i></td>\n";

 echo "</tr><tr>\n";

 echo "<td>Имя пользователя:</td><td><input type=\"text\" value=\"".$row['name']."\" name=\"test_name\" /></td>\n";

 echo "</tr><tr>\n";

 echo "<td>E-Mail пользователя:</td><td><input type=\"text\" value=\"".$row['email']."\" name=\"test_mail\" /></td>\n";

 echo "</tr><tr>\n";

 echo "<td>Тема сообщения:</td><td><input type=\"text\" value=\"".$row['theme']."\" name=\"test_theme\" /></td>\n";

 echo "</tr><tr>\n";

 echo "<td>Сообщение:</td><td><textarea name=\"test_mess\">".$row['message']."</textarea></td>\n";

 echo "</tr><tr>\n";

 echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n";

 echo "</tr></table></form>\n\n";

}

/* Закрываем соединение */

mysql_close();

/* Выводим ссылку возврата */

echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

?>

Вимоги до оформлення звіту

Звіт повинен містити всі запити SQL окремо по кожному створеному файлі з поясненням

Контрольні запитання

  1.  Дати характеристику оператору INSERT. Навести приклади використання.
  2.  Дати характеристику оператору UPDATE. Навести приклади використання.
  3.  Дати характеристику оператору DELETE. Навести приклади використання.

 

А также другие работы, которые могут Вас заинтересовать

8585. Субъективный идеализм Беркли и агностицизм Д. Юма 33 KB
  Субъективный идеализм Беркли и агностицизм Д. Юма. Субъективный идеализм Беркли. Учение, созданное Беркли это - субъективный идеализм. Отвергнув бытие материи, оно признает существование только человеческого сознания, в котором Беркли различает иде...
8586. Критическая философия И. Канта 32.5 KB
  Критическая философия И. Канта Основоположником немецкой классической философии является Иммануил Кант. Все творчество И. Канта можно разделить на два больших периода: докритический и критический. В докритический период И. Кант стоял н...
8587. Объективный идеализм Г.В.Ф. Гегеля 31.5 KB
  Объективный идеализм Г.В.Ф. Гегеля. Гегель в своей философии преимущество и первенство отдавал духу (философскому мышлению) над материей, то его справедливо называют идеалистом а поскольку он отрицал взгляды субъективных идеалистов и считал, что в ...
8588. Антропологический материализм Л.Фейербаха 33 KB
  Антропологический материализм Л.Фейербаха. Фейербах - последовательный и воинствующий материалист. Для него в мире существует лишь одно бытие - материя. Для него Материя и Бытие понятия тождественные, и он часто употребляет одно понятие вместо д...
8589. Кризис классической философии. Становление и развитие неклассической философии, ее основные черты 32 KB
  Кризис классической философии. Становление и развитие неклассической философии, ее основные черты. Кризис классической философии. Кризис классической философии и рациональности во второй половине XIX в. обнажает проблемы иррационального, интуитивног...
8590. Гуманитарно-антропологическое направление постклассической философии: философия жизни, экзистенциализм, неотомизм 34 KB
  Гуманитарно-антропологическое направление постклассической философии: философия жизни, экзистенциализм, неотомизм. Философия жизни. Философия жизни - направление в западно-европейской философской мысли, сложившееся в последней трети 19 в. в Гер...
8591. Сциентистское направление: позитивизм. Формы позитивизма 29.5 KB
  Сциентистское направление: позитивизм. Формы позитивизма. Сциентистское направление: позитивизм. Сциентизм в философии возникает как реакция на натурфилософичность и абстрактность схем классической философии, которые, по мнению представителей данног...
8592. Постпозитивизм и философия науки 31 KB
  Постпозитивизм и философия науки. Понятие постпозитивизм охватывает собой пришедшую на смену неопозитивизму широкую совокупность концепций. Постпозитивизм в настоящее время не отличается большой внутренней однородностью: по многим вопросам существуе...
8593. Основные идеи феноменологии 31 KB
  Основные идеи феноменологии. Феноменология - течение западной философии 20 в. Хотя сам термин Феноменология использовался еще Кантом и Гегелем, широкое распространение он получил благодаря Гуссерлю, который создал масштабный проект феноменологи...