Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
Фамилия учителя:

Число учащихся в классе:

Перейти назад к главной странице предметов.
<А HREF=". ">Перейти к домашней странице Помощи учителю. END_OF_HTHL } Функция проверяет, не имеют ли какие-либо поля предустановленные значения. Это придает функции дополнительную гибкость, позволяя использовать ее как шаблон для классов со значениями по умолчанию, возможно, генерируемыми какой-либо другой CGI-программой. Значения, полученные в первой части процесса добавления, передаются обратно CGI-программе для использования в функции add2. Функция add2 сначала проверяет, существует ли уже класс. Если существует, то пользователю посылается сообщение об ошибке, и он может изменить название класса. Если класс еще не существует, функция проверяет, какое число учащихся введено. Если никакое, то класс создается без учащихся, их можно добавить позднее. Если нее число задано, создается класс и выводится форма, в которую можно ввести данные о каждом учащемся. sub add2 { my $name = param('name'); # Нам нужна копия имени, которая кодируется для URL. my $enc_name = &cgi_encode($name); # Нам также нужна копия имени, которую можно спокойно цитировать для # ввода в базу. Msql использует с этой целью функцию Msql::quote(). my $query_name = $dbh->quote($name); # Строим запрос для проверки существования предмета, my $query ="select id, name, teacher from subject where name=$query_name"; #Если пользователь ввел фамилию учителя, отдельно проверяем фамилию, # поскольку могут быть два курса с одинаковым названием, но # разными учителями. if (param('teacher')) { $teacher = param('teacher'); $enc_teacher = &cgi_encode($teacher); my $query_teacher = $dbh->quote($teacher); $query .= " and teacher=$query_teacher"; } # Теперь посылаем запрос серверу mSQL my $out = $dbh->query($query); ft Проверяем значение $out->numrows, чтобы узнать, были ли возвращены # какие-либо строки. Если были, и пользователь не задал параметр 'override' # (переопределить), то мы выходим с сообщением, что класс уже # существует, и давая пользователю возможность все-таки ввести класс # (повторно передав форму с установленным параметром 'override', if ($out->numrows and not param('override')) { # Печать страницы 'Класс уже существует'. } else { # Теперь вводим данные в базу. # Сначала нужно выбрать новое число из # последовательности для таблицы. $out = $dbh->query("select _seq from subject"); my ($id) = $out->fetchrow; # Теперь вводим информацию в базу данных, используя # полученное из последовательности число в качестве ID. $query = "INSERT INTO subject (id, name, teacher) VALUES ($id, '$name', 'Steacher')"; $dbh->query($query); # Если пользователь не задал размер класса, выходим # с сообщением о том, что пользователь может добавить # число учащихся позже, if (not param('size')) { # Вывод страницы с сообщением об успехе. } else { \ # Теперь выводим форму, позволяющую пользователю # ввести имена всех учащихся в классе. print header, start_html('title'=>'Create Class List', 'BGCOLOR'=>'white'); print <Создать список класса

$name добавлен в базу данных. Теперь можно ввести фамилии учащихся в этом классе. Добавить или исключить учащихся можно позднее с главной страницы предметов <а href="subject.cgi"> . <Р>

 
<<-[Весь Текст]
Страница: из 157
 <<-