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

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

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

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
# DBI::connect() использует формат 'DBI:driver:database', в нашем случае
# используется драйвер MySQL и открывается база данных 'teach', 
my $dbh = DBI->connect('DBI:mysql:teach');
# Операция добавления распределена между тремя отдельными функциями. Первая 
функция, add,
# выводит пользователю форму шаблона для создания нового экзамена, 
sub add {
$subject = param('subject')
if (param('subjects')); 
$subject = "" 
if $subject eq 'all';
print header, start_html('title'=>'Create a New Test',
'BGCOLOR'=>'white'); print <Создание нового экзамена 
Предмет: END_OF_HTML my @ids = (); my %subjects = (); my $out2 = $dbh->prepare("select id,name from subject order by name" $out2->execute; # DBI: :fetchrow_array() совершенно аналогична Msql: :fetchrow() while(my($id,$subject)=$out2->fetchrow_array) { push(@ids,Sid); $subjects{"$id"} = Ssubject; } print popup_menu('name'=>'subjects', 'values'=>[@ids], 'default'=>$subject, 'labels'=>\%subjects); print < Число вопросов:
Название или идентификатор (например, дата) экзамена: <Р> END_OF_HTML } Эта функция выводит форму, позволяющую пользователю выбрать предмет для экзамена, а также количество вопросов и название. Для вывода списка имеющихся предметов выполняется запрос к таблице предметов. При выполнении в DBI запроса SELECT он должен быть сначала подготовлен, а затем выполнен. Функция DBI::prepare полезна при работе с некоторыми серверами баз данных, позволяющими осуществить операции над подготовленными запросами, прежде чем выполнить их. Для MySQL и mSQL это означает лишь запоминание запроса до вызова функции DBI:: execute . Результаты работы этой функции посылаются функции add2, как по-: казано ниже: sub add2 { my Ssubject = param('subjects'); [ my $num = param('num'); $name = param('name') if param('name'); my $out = $dbl»prepare("select name from subject where id=$subject"); $out->execute; my (Ssubname) = $out->fetchrow_a.rray; print header, start_html('title'=>"Создание экзамена по предмету $subname", ' BGCOLOR'=>'white'); print < Создание экзамена по предмету $subname

$name

Введите количество баллов за каждый правильный ответ. Сумма баллов не обязательно должна равняться 100. <Р> END_OF_HTML for (1..$num) { print qq%$_: %; if (not.$_ % 5) { print "
\n"; } } print < Введите текст экзамена:

END_OF_HTML } Эта функция динамически генерирует форму для экзамена, основываясь на параметрах, введенных в предыдущей форме. Пользователь может ввести количество баллов для каждого вопроса экзамена и полный текст самого экзамена. Выходные данные этой функции посылаются завершающей функции add3, как показано ниже: sub add3 { my $subject = para'm( 'subjects'); my $num = param('num'); $name = param('name') if param('name'); my $qname; ($qname = $name) =" s/'/\\'/g;
 
<<-[Весь Текст]
Страница: из 157
 <<-