Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сетевые технологии. Обработка форм в рамках динамических Интернет-сайтов. Учебное пособие
.pdf
101
echo "\n<OPTION value=".$k;
for ($j=0;$j<count($fmns);$j++)
{
settype($fmns[$j], integer);
if ($k==$fmns[$j])
{
echo " selected";
}
}
echo ">".$mmns[$k]."</OPTION>";
}
echo "\n</SELECT></TD>";
// Вывод данных из однозначного выбора
settype($rowtbrd['tbodv'], integer);
echo "\n<TD>";
for ($j=0;$j<count($modv);$j++)
{
echo "\n<INPUT type=radio name=renodv[".$n."][] value=".$j;
if ($j==$rowtbrd['tbodv'])
{
echo " checked";
}
echo ">".$modv[$j]."</INPUT>";
}
echo "\n</TD>";
// Вывод данных из множественного выбора
$fmnv = explode("##", $rowtbrd['tbmnv']);
echo "\n<TD>";
for ($k=0;$k<count($mmnv);$k++)
{
echo "\n<INPUT type=checkbox name=renmnv[".$n."][] value=".$k;
for ($j=0;$j<count($fmnv);$j++)
{
settype($fmnv[$j], integer);
if ($k==$fmnv[$j])
{
echo " checked";
}
}
echo ">".$mmnv[$k]."</INPUT>";
if ($k!=count($mmnv)-1)
{
echo "<BR>";

102
}
}
echo "\n</TD>";
echo "\n</TR>";
$n++;
}
echo "\n</TABLE>";
echo "\n</DIV>";
echo "\n<HR color=green size=2>";
echo "\n<DIV align=center>";
echo "\n<TABLE border=0 cellspacing=0 cellpadding=2 width=100%>";
echo "\n<TR align=center>";
echo "\n<TD><INPUT type=submit name=ren value=\"Изменить
данные\"></INPUT</TD>";
echo "\n<TD><INPUT type=submit name=del value=\"Удалить
данные\"></INPUT</TD>";
echo "\n</TR>";
echo "\n</TABLE>";
echo "\n</DIV>";
echo "\n</FORM>";
}
}
@mysql_close($MyLink);
?>
<HR color=green size=2>
</BODY>
</HTML>

103
4. Алгоритмы обработки информации в формах динамических Интернетстраниц с сохранением информации во взаимосвязанных таблицах
реляционной базы данных
В данной главе представлено описание программных компонентов для реа-
лизации обработки информации различных визуальных элементов форм, пред-
ставленных на динамических Интернет-сайтах, с сохранением получаемых в
процессе обработки информации на сервере результатов в рамках соответству-
ющих таблиц реляционной базы данных. Подобная схема организации обра-
ботки информации широко применяется для решения задач по реализации общения между удаленными пользователями в рамках гостевых книг, форумов,
чатов и т.д., а также для информационного сопровождения различных производственных процессов в организациях и реализации электронной коммерции
с высокими выдвигаемыми требованиями к безопасности хранимой и обрабатываемой на сервере информации.
На рисунке представлена реализация схемы данных, показывающей взаимосвязи между таблицами в рамках рассматриваемой реляционной базы данных
(рис. 8).
Рисунок 8. Схема взаимосвязи между таблицами реляционной базы данных
Представленный ниже исходный код программы детально показывает реализацю процесса создания реляционной базы данных в целом, необходимых вза-
имосвязанных таблиц с применением реляционных отношений типа «один-кодному» и «один-ко-многим» и примеры заполнения представленных таблиц
произвольными взаимосвязыннми записями, которые в совокупности с точки
зрения главной таблицы аналогичны по своей структуре записям данных в рам-
ках отраженной во второй главе единой таблицы базы данных.

104
<HTML><HEAD>
<?PHP
// Подключение с CУБД MySQL
$Host = "localhost";
$User = "root";
$Password = '';
if (!@mysql_connect($Host, $User, $Password))
{
echo "\n<FONT color=red><B>CУБД MySQL не может быть
подключена!</B></FONT><BR>";
exit;
}
else
{
$MyLink = @mysql_connect($Host, $User, $Password);
echo "\n<FONT color=blue><B>CУБД MySQL успешно подклю-
чена!</B></FONT><BR>";
// Работа с реляционной базой данных
$dbname = 'db_02';
// Удаление реляционной базы данных если она существует
$zapdb01 = "DROP DATABASE IF EXISTS ".$dbname.";";
$resdb01 = @mysql_query($zapdb01);
if (!$resdb01)
{
echo "\n<FONT color=red><B>Реляционная база данных ". $dbname."
не может быть удалена или отсутствует!</B> </FONT><BR>";
exit;
}
else
{
echo "\n<FONT color=blue><B>Реляционная база данных ". $dbname."
успешно удалена!</B></FONT><BR>";
// Создание реляционной базы данных
$zapdb02 = "CREATE DATABASE ".$dbname." DEFAULT CHARACTER
SET 'utf8';";
$resdb02 = @mysql_query($zapdb02);
if (!$resdb02)
{
echo "\n<FONT color=red><B>Реляционная база данных ". $dbname."
не может быть создана!</B></FONT><BR>";
exit;
}
else

105
{
echo "\n<FONT color=blue><B>Реляционная база данных ".
$dbname." успешно создана!</B></FONT><BR>";
// Подключение к реляционной базе данных
$zapdb03 = "USE ".$dbname.";";
$resdb03 = @mysql_query($zapdb03);
if (!$resdb03)
{
echo "\n<FONT color=red><B>Невозможно подключить реляцион-
ную базу данных ".$dbname."!</B></FONT><BR>";
exit;
}
else
{
echo "\n<FONT color=blue><B>Реляционная база данных
".$dbname." успешно подключена!</B></FONT><BR>";
// Работа с таблицами в реляционной базе данных
// Массивы наименований таблиц и запросов на создание их струк-
тур и добавление начальных записей данных в реляционной базе данных
$tbname = array();
$tbcre = array();
$tbins = array();
// Таблица-справочник элементов однозначного списка
$tbname[0] = "tb_ods";
$tbcre[0] = "CREATE TABLE ".$tbname[0]."
(
tbodskod serial comment 'Код элемента однозначного списка',
tbodszn varchar(255) comment 'Значение элемента',
primary key (tbodskod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[0] = "INSERT INTO ".$tbname[0]."
(
tbodskod, tbodszn
)
VALUES
(NULL, 'Значение 11'),
(NULL, 'Значение 12'),
(NULL, 'Значение 13'),
(NULL, 'Значение 14');";
// Таблица-справочник элементов множественного списка
$tbname[1] = "tb_mns";
$tbcre[1] = "CREATE TABLE ".$tbname[1]."

106
(
tbmnskod serial comment 'Код элемента множественного списка',
tbmnszn varchar(255) comment 'Значение элемента',
primary key (tbmnskod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[1] = "INSERT INTO ".$tbname[1]."
(
tbmnskod, tbmnszn
)
VALUES
(NULL, 'Значение 21'),
(NULL, 'Значение 22'),
(NULL, 'Значение 23'),
(NULL, 'Значение 24');";
// Таблица-справочник элементов однозначного выбора
$tbname[2] = "tb_odv";
$tbcre[2] = "CREATE TABLE ".$tbname[2]."
(
tbodvkod serial comment 'Код элемента однозначного выбора',
tbodvzn varchar(255) comment 'Значение элемента',
primary key (tbodvkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[2] = "INSERT INTO ".$tbname[2]."
(
tbodvkod, tbodvzn
)
VALUES
(NULL, 'Значение 31'),
(NULL, 'Значение 32'),
(NULL, 'Значение 33'),
(NULL, 'Значение 34');";
// Таблица-справочник элементов множественного выбора
$tbname[3] = "tb_mnv";
$tbcre[3] = "CREATE TABLE ".$tbname[3]."
(
tbmnvkod serial comment 'Код элемента множественного выбора',
tbmnvzn varchar(255) comment 'Значение элемента',
primary key (tbmnvkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[3] = "INSERT INTO ".$tbname[3]."
(
tbmnvkod, tbmnvzn
)

107
VALUES
(NULL, 'Значение 41'),
(NULL, 'Значение 42'),
(NULL, 'Значение 43'),
(NULL, 'Значение 44');";
// Таблица элементов формы
$tbname[4] = "tb_main";
$tbcre[4] = "CREATE TABLE ".$tbname[4]."
(
tbmnkod serial comment 'Код записи',
tbhdn varchar(255) comment 'Скрытый элемент',
tbtp varchar(255) comment 'Текстовое поле',
tbto mediumtext comment 'Текстовая область',
tbps varchar(255) comment 'Поле пароля',
tbst varchar(255) comment 'Поле адреса Интернет-сайта',
tbet varchar(255) comment 'Поле адреса электронной почты',
tbtl char(14) comment 'Поле номера телефона',
tbdtv date comment 'Выбор даты',
tbttv time comment 'Выбор времени',
tbclv varchar(255) comment 'Выбор цвета',
tbflv varchar(255) comment 'Загрузка файла',
primary key (tbmnkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[4] = "INSERT INTO ".$tbname[4]."
(
tbmnkod, tbhdn, tbtp, tbto, tbps, tbst, tbet, tbtl,
tbdtv, tbttv, tbclv, tbflv
)
VALUES
(NULL, '18-06-2018 13:45', 'Иванов Иван', 'Первое письмо Ива-
нова Ивана!##Добро пожаловать##Доброе утро!', 'reW3Q65z3',
'https://www.ivanov_ivan.com', 'ivanov_ivan@ mail.ru', '8-905456-7890', '2018-07-13', '08:37:00', '#f4a5d7', 'Иванов Иван Мой файл.pdf'),
(NULL, '30-06-2018 10:34', 'Петров Петр', 'Приветственное пись-
мо Петрова Петра!##Добро пожаловать##Доброе утро!', 'reW3Q65z3',
'https://www.petrov_01.ru', 'petrov001@yandex.ru', '8-960-001-5346', '201808-11', '11:03:00', '#ffd5ee', 'Резюме Петрова П.П..pdf');";
// Таблица соответствия значений элементов формы и однозначно-
го списка
$tbname[5] = "tb_main_ods";
$tbcre[5] = "CREATE TABLE ".$tbname[5]."
(
tbmnodskod serial comment 'Код записи',

108
tbmnkod bigint unsigned not null unique comment 'Код записи',
tbodskod bigint unsigned not null comment 'Код записи',
primary key (tbmnodskod),
foreign key (tbmnkod) references ".$tbname[4]."(tbmnkod),
foreign key (tbodskod) references ".$tbname[0]."(tbodskod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[5] = "INSERT INTO ".$tbname[5]."
(
tbmnodskod, tbmnkod, tbodskod
)
VALUES
(NULL, 1, 1),
(NULL, 2, 3);";
// Таблица соответствия значений элементов формы и множе-
ственного списка
$tbname[6] = "tb_main_mns";
$tbcre[6] = "CREATE TABLE ".$tbname[6]."
(
tbmnmnskod serial comment 'Код записи',
tbmnkod bigint unsigned not null comment 'Код записи',
tbmnskod bigint unsigned not null comment 'Код записи',
primary key (tbmnmnskod),
foreign key (tbmnkod) references ".$tbname[4]."(tbmnkod),
foreign key (tbmnskod) references ".$tbname[1]." (tbmnskod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[6] = "INSERT INTO ".$tbname[6]."
(
tbmnmnskod, tbmnkod, tbmnskod
)
VALUES
(NULL, 1, 1),
(NULL, 1, 3),
(NULL, 2, 1),
(NULL, 2, 3),
(NULL, 2, 4);";
// Таблица соответствия значений элементов формы и однозначно-
го выбора
$tbname[7] = "tb_main_odv";
$tbcre[7] = "CREATE TABLE ".$tbname[7]."
(
tbmnodvkod serial comment 'Код записи',
tbmnkod bigint unsigned not null unique comment 'Код записи',
tbodvkod bigint unsigned not null comment 'Код записи',

109
primary key (tbmnodvkod),
foreign key (tbmnkod) references ".$tbname[4]."(tbmnkod),
foreign key (tbodvkod) references ".$tbname[2]." (tbodvkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[7] = "INSERT INTO ".$tbname[7]."
(
tbmnodvkod, tbmnkod, tbodvkod
)
VALUES
(NULL, 1, 1),
(NULL, 2, 3);";
// Таблица соответствия значений элементов формы и множе-
ственного выбора
$tbname[8] = "tb_main_mnv";
$tbcre[8] = "CREATE TABLE ".$tbname[8]."
(
tbmnmnvkod serial comment 'Код записи',
tbmnkod bigint unsigned not null comment 'Код записи',
tbmnvkod bigint unsigned not null comment 'Код записи',
primary key (tbmnmnvkod),
foreign key (tbmnkod) references ".$tbname[4]."(tbmnkod),
foreign key (tbmnvkod) references ".$tbname[3]." (tbmnvkod)
) ENGINE = InnoDB CHARACTER SET = 'utf8';";
$tbins[8] = "INSERT INTO ".$tbname[8]."
(
tbmnmnvkod, tbmnkod, tbmnvkod
)
VALUES
(NULL, 1, 1),
(NULL, 1, 3),
(NULL, 1, 4),
(NULL, 2, 2),
(NULL, 2, 3);";
for ($tb=0;$tb<count($tbname);$tb++)
{
// Удаление таблицы в реляционной базе данных если она суще-
ствует
$zaptb01 = "DROP TABLE IF EXISTS ".$tbname[$tb].";";
$restb01 = @mysql_query($zaptb01);
if (!$restb01)
{

110
echo "\n<FONT color=red><B>Таблица ". $tbname[$tb]." в реляционной базе данных ".$dbname." не может быть удалена или отсутствует!</B></FONT><BR>";
}
else
{
echo "\n<FONT color=blue><B>Таблица ". $tbname[$tb]." в реля-
ционной базе данных ".$dbname." успешно удалена!</B></FONT><BR>";
// Создание таблиц в реляционной базы данных с указанием
структуры
$restb02 = @mysql_query($tbcre[$tb]);
if (!$restb02)
{
echo "\n<FONT color=red><B>Таблица ". $tbname[$tb]." в реля-
ционной базе данных ".$dbname." не может быть
создана!</B></FONT><BR>";
}
else
{
echo "\n<FONT color=blue><B>Таблица ". $tbname[$tb]." в реля-
ционной базе данных ".$dbname." успешно создана!</B></FONT><BR>";
// Удаление записей из таблицы реляционной базы данных
$zaptb03 = "DELETE FROM ".$tbname[$tb].";";
$restb03 = @mysql_query($zaptb03);
if (!$restb03)
{
echo "\n<FONT color=red><B>Записи данных из таблицы
".$tbname[$tb]." реляционной базы данных ".$dbname." не могут быть
удалены!</B></FONT><BR>";
}
else
{
echo "\n<FONT color=blue><B>Записи данных из таблицы
".$tbname[$tb]." реляционной базы данных ".$dbname." успешно
удалены!</B></FONT><BR>";
// Добавление записи в таблицу базы данных
$restb04 = @mysql_query($tbins[$tb]);
if (!$restb04)
{
echo "\n<FONT color=red><B>Запись данных в таблицу
".$tbname[$tb]." реляционной базы данных ".$dbname." не может быть
добавлена!</B></FONT><BR>";
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
