MySQL & mSQL

         

Вывести форму, говорящую пользователю, что


my ($ref_students,$ref_notstudents) = &find_matching_students(@list);

@students = @$ref_students

if $ref_students;

@notstudents = @$ref_notstudents

if $ref_notstudents;

if (@notstudents) {

# Вывести форму, говорящую пользователю, что в списке

# есть несуществующие учащиеся. Пользователь может автоматически

# создать учащихся или вернуться и исправить опечатки.

} else {

&update_students($id,@students);

#Вывести форму успешного завершения работы.

} }

В этой функции основная часть работы выполняется другими функциями. Это обусловлено тем, что в других частях CGI-программы возникают сходные задачи, которые полезно решать с помощью совместно используемых функций. Первая такая функция - f ind_last_student , которая изучает данные формы и возвращает список имеющихся в форме номеров, не связанных с ID в базе данных, всех введенных пользователем учащихся. Это необходимо, поскольку, как упоминалось раньше, предыдущая форма генерируется динамически и нет возможности непосредственно узнать, сколько учащихся включено.

sub find_last_student {

my @params = param; my @list = (); foreach (@params) {

next if not param($_);

# Исключить все 'пустые' поля

if (/-(first|middle|last|ext)(\d+)/) {

my $num = $2;

if (not grep(/"$num$/,@list)) { push(@list,$num); } } }

@list = sort { $a <=> $b} @list; return @list;

}

Обратите внимание, что функция возвращает все числа, а не только последнее, которое, предположительно, будет числом введенных учащихся. Хотя предыдущая форма вывела число запрошенных пользователем записей, нет гарантии, что пользователь заполнил их все. Он мог пропустить строку, которая не будет включена в данные формы. Поэтому необходимо выявить все введенные числа. Результаты работы этой функции пересылаются следующей вспомогательной функции find_matching_students , как показано ниже:

sub find_matching_students { my §list = @_;

my ($i,@students,@notstudents); §students = ();

@notstudents = ();

if (@list) {


Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий