Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сетевые технологии. Обработка форм в рамках динамических Интернет-сайтов. Учебное пособие
.pdf
111
}
else
{
echo "\n<FONT color=blue><B>Запись данных в таблицу
".$tbname[$tb]." реляционной базы данных ".$dbname." успешно добав-
лена!</B></FONT><BR>";
}
}
}
}
}
}
}
}
}
@mysql_close($MyLink);
?>
</BODY>
</HTML>
Необходимо отметить, что для работы с записями в рамках взаимосвязанных
таблиц реляционной базы данных необходимо ссылаться из программы пользователя или администратора на внешний программный файл, в котором прописаны параметры подключения к таблице базы данных, содержание которого
идентично описанному во второй главе программному файлу за исключением
корректного указания используемой реляционной базы данных.
<HTML><HEAD>
<?PHP
// Установка кодировки
//$zapkod = "SET NAMES 'cp1251'";
//$reskod = @mysql_query($zapkod);
// Подключение с 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);

112
// echo "\n<FONT color=blue><B>CУБД MySQL успешно подключена!</B></FONT><BR>";
// Работа с реляционной базой данных
global $dbname;
$dbname = 'db_02';
// Подключение к реляционной базе данных
$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>";
// Установка кодировки
$zapkod = "SET NAMES 'utf8'";
$reskod = @mysql_query($zapkod);
if (!$reskod)
{
// echo "\n<FONT color=red><B>Невозможно установить кодировку
для реляционной базы данных ".$dbname."!</B> </FONT><BR>";
exit;
}
else
{
// echo "\n<FONT color=blue><B>Кодировка для реляционной базы
данных ".$dbname." успешно установлена!</B> </FONT><BR>";
}
}
}
?>
</BODY>
</HTML>
4.1. Обработка форм динамических Интернет-страниц с сохранением
информации во взаимосвязанных таблицах реляционной базы данных
Представленная ниже программа предназначена для реализации
пользовательских возможностей по обработке информации в рамках

113
взаимосвязанных таблиц реляционной базы данных за исключением таблиц-
справочников, то есть выполнения операций для добавления необходимых
компонентов новой записи на основе применения визуальной формы (аналог
рис. 4) и вывода записей из таблиц в рамках единой динамической Интернетстраницы (аналог рис. 5).
Исходный код программы имеет следующий вид:
<HTML><HEAD>
<?PHP
// Подключение к реляционной базе данных
require("podkl_02.php");
// Формирование одномерных массивов для элементов формы
// Однозначный список
$mods = array();
$zaptbods = "SELECT * FROM tb_ods;";
$restbods = @mysql_query($zaptbods);
$rowstbods = @mysql_num_rows($restbods);
$colstbods = @mysql_num_fields($restbods);
if ($rowstbods==0)
{
// echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_ods
реляционной базы данных ".$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Отсутствуют данные в таблицесправочнике элементов однозначного списка!</B> </FONT>";
// echo "\n</DIV>";
}
else
{
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблице-
справочнике tb_ods реляционной базы данных ".
$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблицесправочнике элементов однозначного списка!</B></FONT>";
// echo "\n</DIV>";
while ($rowtbods = @mysql_fetch_array($restbods))
{
// Элементы однозначного списка
$mods[$rowtbods[0]-1] = $rowtbods[1];
}
}

114
// Множественный список
$mmns = array();
$zaptbmns = "SELECT * FROM tb_mns;";
$restbmns = @mysql_query($zaptbmns);
$rowstbmns = @mysql_num_rows($restbmns);
$colstbmns = @mysql_num_fields($restbmns);
if ($rowstbmns==0)
{
// echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_mns
реляционной базы данных ".$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Отсутствуют данные в таблицесправочнике элементов множественного списка!</B> </FONT>";
// echo "\n</DIV>";
}
else
{
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблице-
справочнике tb_mns реляционной базы данных ".
$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблице-
справочнике элементов множественного списка!</B> </FONT>";
// echo "\n</DIV>";
while ($rowtbmns = @mysql_fetch_array($restbmns))
{
// Элементы однозначного списка
$mmns[$rowtbmns[0]-1] = $rowtbmns[1];
}
}
// Однозначный выбор
$modv = array();
$zaptbodv = "SELECT * FROM tb_odv;";
$restbodv = @mysql_query($zaptbodv);
$rowstbodv = @mysql_num_rows($restbodv);
$colstbodv = @mysql_num_fields($restbodv);
if ($rowstbodv==0)
{
// echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_odv
реляционной базы данных ".$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";

115
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Отсутствуют данные в таблицесправочнике элементов однозначного выбора!</B> </FONT>";
// echo "\n</DIV>";
}
else
{
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблицесправочнике tb_odv реляционной базы данных ".
$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблицесправочнике элементов однозначного выбора!</B> </FONT>";
// echo "\n</DIV>";
while ($rowtbodv = @mysql_fetch_array($restbodv))
{
// Элементы однозначного выбора
$modv[$rowtbodv[0]-1] = $rowtbodv[1];
}
}
// Множественный выбор
$mmnv = array();
$zaptbmnv = "SELECT * FROM tb_mnv;";
$restbmnv = @mysql_query($zaptbmnv);
$rowstbmnv = @mysql_num_rows($restbmnv);
$colstbmnv = @mysql_num_fields($restbmnv);
if ($rowstbmnv==0)
{
// echo "\n<FONT color=red><B>Отсутствуют данные в таблице tb_mnv
реляционной базы данных ".$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Отсутствуют данные в таблицесправочнике элементов множественного выбора!</B> </FONT>";
// echo "\n</DIV>";
}
else
{
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблицесправочнике tb_mnv реляционной базы данных ".
$dbname."!</B></FONT>";
// echo "\n<HR color=green size=2>";

116
// echo "\n<DIV align=center>";
// echo "\n<FONT color=red><B>Успешно выбраны данные в таблице-
справочнике элементов множественного выбора!</B> </FONT>";
// echo "\n</DIV>";
while ($rowtbmnv = @mysql_fetch_array($restbmnv))
{
// Элементы однозначного выбора
$mmnv[$rowtbmnv[0]-1] = $rowtbmnv[1];
}
}
// Формирование директории для хранения загружаемых файлов
$dirs = "files_reltb";
if (@!opendir($dirs)) { mkdir($dirs, 0666); }
?>
<SCRIPT type="text/javascript" language=JavaScript>
function prfl(zagr)
{
max_size = "<? echo(ini_get('upload_max_filesize')); ?>";
max_size_mb = Math.round(max_size.substr(0,(max_size.length-1))
*100)/100;
zagr_size_mb = Math.round((zagr.files[0].size/(1024*1024))*100) /100;
if (zagr_size_mb>max_size_mb)
{
soob = "Ошибка загрузки файла!";
soob = soob+"\nРазмер загружаемого файла "+zagr_size_mb +"
Мбайт";
soob = soob+"\nМаксимальный размер файла "+max_size_mb +"
Мбайт";
soob = soob+"\nВыберите файл меньшего размера!";
alert(soob);
zagr.value = "";
zagr.focus();
}
}
</SCRIPT>
<TITLE>Обработка форм динамических Интернет-страниц с
сохранением записей данных во взаимосвязанных таблицах
реляционной базы данных</TITLE></HEAD>
<BODY>
<HR color=green size=2>
<DIV align=center>

117
<FONT color=blue><B>Вывод формы исходных данных для добавления
записи во взаимосвязанные таблицы реляционной базы
данных</B></FONT>
</DIV>
<HR color=green size=2>
<DIV align=justify>
<FORM name=fnam method=post enctype="multipart/form-data">
<TABLE border=1 bordercolor=green cellspacing=0>
<TR valign=top>
<TD>Скрытый элемент</TD>
<TD><INPUT type=hidden name=hdn value="<? echo
date("d").".".date("m").".".date(Y)." ".date("H:i:s") ?>"></INPUT> </TD>
</TR>
<TR valign=top>
<TD>Текстовое поле</TD>
<TD><INPUT type=text name=tp value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Текстовая область</TD>
<TD><TEXTAREA rows=6 cols=40 name=to></TEXTAREA> </TD>
</TR>
<TR valign=top>
<TD>Поле пароля</TD>
<TD><INPUT type=password name=ps value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Поле адреса Интернет-сайта (https://www.xxx.xxx)</TD>
<TD><INPUT type=url name=st value=""></INPUT></TD>
</TR>
<TD>Поле адреса электронной почты (xxx@xxx.xxx)</TD>
<TD><INPUT type=email name=et value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Поле номера телефона (8-999-999-9999)</TD>
<TD><INPUT type=tel name=tl pattern="8-[0-9]{3}-[0-9]{3}-[0-9]{4}"
value=""></INPUT></TD>
</TR>
<TR valign=top>
<TD>Выбор даты</TD>
<TD><INPUT type=date name=dtv></INPUT></TD>
</TR>
<TD>Выбор времени</TD>
<TD><INPUT type=time name=ttv></INPUT></TD>

118
</TR>
<TR valign=top>
<TD>Выбор цвета</TD>
<TD><INPUT type=color name=clv></INPUT></TD>
</TR>
<TR valign=top>
<TD>Загрузка файла</TD>
<TD><INPUT type=file name=flv onchange="prfl(flv);"></INPUT> </TD>
</TR>
<TR valign=top>
<TD>Однозначный список</TD>
<TD><SELECT name=ods[]>
<OPTION value=-1>Выберите элемент однозначного списка </OPTION>
<?PHP
for ($i=0;$i<count($mods);$i++)
{
echo "<OPTION value=".$i.">".$mods[$i]."</OPTION>\n";
}
?>
</SELECT></TD></TR>
<TR valign=top>
<TD>Множественный список</TD>
<TD><SELECT name=mns[] multiple>
<?PHP
for ($i=0;$i<count($mmns);$i++)
{
echo "<OPTION value=".$i.">".$mmns[$i]."</OPTION>\n";
}
?>
</SELECT></TD></TR>
<TR valign=top><TD>Однозначный выбор</TD><TD>
<?PHP
for ($i=0;$i<count($modv);$i++)
{
echo "<INPUT type=radio name=odv[] value=".$i.">".$modv[$i].
"</INPUT><BR>\n";
}
?>
</TD></TR>
<TR valign=top>
<TD>Множественный выбор</TD><TD>
<?PHP
for ($i=0;$i<count($mmnv);$i++)

119
{
echo "<INPUT type=checkbox name=mnv[] value=".$i.">".
$mmnv[$i]."</INPUT><BR>\n";
}
?>
</TD></TR>
<TR align=center>
<TD><INPUT type=submit name=add value="Добавление
данных"></INPUT></TD>
<TD><INPUT type=reset value="Отмена"></INPUT></TD></TR>
</TABLE></FORM>
</DIV>
<?PHP
// Добавление новой записи во взаимосвязанные таблицы реляционной
базы данных db_02
if (isset($_POST['add']))
{
// Получение данных из скрытого элемента
settype($_POST['hdn'], string);
$addhdn = trim(strip_tags($_POST['hdn']));
// Получение данных из текстового поля
settype($_POST['tp'], string);
$addtp = trim(strip_tags($_POST['tp']));
// Получение данных из текстовой области
settype($_POST['to'], string);
$addto = trim(strip_tags($_POST['to']));
$addto = str_replace("\r\n","##",$addto);
// Получение данных из поля пароля
settype($_POST['ps'], string);
$addps = trim(strip_tags($_POST['ps']));
// Получение данных из поля адреса Интернет-сайта
settype($_POST['st'], string);
$addst = trim(strip_tags($_POST['st']));
// Получение данных из поля адреса электронной почты
settype($_POST['et'], string);
$addet = trim(strip_tags($_POST['et']));
// Получение данных из поля номера телефона
settype($_POST['tl'], string);
$addtl = trim(strip_tags($_POST['tl']));
// Получение данных о выборе даты
settype($_POST['dtv'], string);
$adddtv = trim(strip_tags($_POST['dtv']));
// Получение данных о выборе времени

120
settype($_POST['ttv'], string);
$addttv = trim(strip_tags($_POST['ttv']));
// Получение данных о выборе цвета
settype($_POST['clv'], string);
$addclv = trim(strip_tags($_POST['clv']));
// Получение данных о загружаемом файла
if ($_FILES['flv']['name']!="")
{
settype($_FILES['flv']['name'], string);
$addflv = $_FILES['flv']['name'];
if (@copy(iconv('utf-8','windows-1251',$_FILES['flv'] ['tmp_name']),
$dirs."/".iconv('utf-8','windows-1251',$addflv)))
{
// echo "\n<FONT color=blue><B>Файл ".$addflv." успешно
загружен!</B></FONT>";
}
else
{
// echo "\n<FONT color=red><B>Файл ".$addflv." невозможно
загрузить!</B></FONT>";
$addflv = "";
}
@unlink($_FILES['flv']['tmp_name']);
}
// Получение данных из однозначного списка
$vods = 0;
for ($i=0;$i<count($_POST['ods']);$i++)
{
$vods++;
settype($_POST['ods'][$i], integer);
$iods = $_POST['ods'][$i]+1;
}
// Получение данных из множественного списка
$vmns = 0;
$imns = array();
for ($i=0;$i<count($_POST['mns']);$i++)
{
$vmns++;
settype($_POST['mns'][$i], integer);
$imns[$i] = $_POST['mns'][$i]+1;
}
// Получение данных из однозначного выбора
$vodv = 0;
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
