Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kudelya_Oxana_Otchyot.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.5 Mб
Скачать

6.1 Входные и выходные данные

Входные данные программы хранятся в четырех таблицах:

  1. Komandi – содержит информацию о командах Федерации;

  2. Sostav_komand – хранит информацию о составах команд и личную информацию игроков;

  3. Coaches – содержит личную информацию тренеров Федерации;

  4. Championship – содержит информацию о чемпионате Федерации, со списком команд-участниц чемпионата и их очками, а также списком не задействованных в чемпионате команд;

Результатом работы является web-приложение Федерации хоккея.

6.2 Описание алгоритма работы и sql-запросов скриптов web-приложения

В начале каждого php-скрипта приложения подключается файл my.dat, содержащий параметры подключения к серверу базы данных, и осуществляющий подключение и выбор базы данных.

Скрипт igroki.php в самом начале получает значение переменной param, переданной ему по методу GET или POST.

if($_SERVER['REQUEST_METHOD']=='GET')

{$action = $_GET['param'];}

if($_SERVER['REQUEST_METHOD']=='POST')

{$action = $_POST['param'];}

Значение переменной определяет действия, которые будут выполняться скриптом.

Если значение param равно prosmotr_all, то скриптом принимается переменная kod, и с помощью SQL-запроса выбираются из таблицы игроков в БД все записи и отображаются на странице сайта в виде таблицы сведения всех хоккеистов команд, сотрудничающих с Федерацией:

$s="select * from $table_sostav_komand order by kod_komandi desc";

Если значение param равно igroki_add, то отображается страница c формой для ввода информации и выпадающим списком названий команд, и по нажатию на кнопку добавления, передается с формы и принимается скриптом скрытый параметр add_v_bazu и параметры записи для добавления:

$fio = $_POST['ФИО'];

$god = $_POST['Год_рождения'];

$kod_cluba= $_POST['kod'];

с помощью SQL-запроса производится вставка (добавление) записи о новом игроке в таблицу составов команд БД приложения:

$s="insert into $table_sostav_komand values(0,'$kod_komandi','$fio','$god')";

после чего происходит переадресация на страницу состава команды, в которую был добавлен игрок:

$URL="igroki.php?param=prosmotr_all&kod=".$kod_komandi;

header ("Location: $URL");

Если значение param равно igroki_edit, то получаем значение переменной kod, которая определяет код игрока:

if($_SERVER['REQUEST_METHOD']=='GET') {$kod = $_GET['kod'];}

Формируем выпадающий список формы, заполняя его ФИО игроков:

print "<br> <select name=\"kod\" onChange=\"window.location='sostav_komand.php?param=igroki_edit&kod='+this.value;\">";

print "<option value='0'> Все игроки федерации </option>";

$s="select Kod_igroka, FIO_igroka from $table_sostav_komand";

$q=mysqli_query($my_connect,$s) or die ("Ошибка обращения к таблице составов команд!");

While ($row=mysqli_fetch_row($q)) {

if ($row[0]==$kod) print "<option selected value='$row[0]'>$row[1]</option>";

else print "<option value='$row[0]'>$row[1]</option>";

и когда из списка выбран определенный игрок, то при помощи SQL-запроса отображается страница с формой, где в соответствующих полях содержатся данные указанного игрока, которые подлежат изменению:

if ($kod!=0) {

$s="select * from $table_sostav_komand where kod_komandi='$kod'";

$q=mysqli_query($my_connect,$s) or die ("Ошибка обращения к таблице составов команд!");

$row=mysqli_fetch_row($q);

По нажатию на кнопку редактирования с формы передается и принимается скриптом скрытый параметр igrok_edit_v_bazu, также из формы получаются значения других переменных:

$kod = $_POST['kod'];

$kod_k = $_POST['kod_komandi'];

$fio = $_POST['ФИО_игрока'];

$god = $_POST['Год_рождения'];

при помощи SQL-запроса осуществляется изменение записи указанного игрока в таблице составов команд в БД:

$s="update $table_sostav_komand set Kod_komandi='$kod_k', FIO_igroka='$fio', God_rojdeniya='$god' where Kod_igroka='$kod'";

и происходит переадресация на страницу просмотра сведений обо всех игроках выбранной команды:

$URL="igroki.php?param=prosmotr_all&kod=".$kod_k;

header ("Location: $URL");

Если значение param равно igroki_delete, то отображается страница с формой, где напротив каждой фамилии игрока стоит элемент checkbox для отметки удаления информации, к строке имени которого добавляем код игрока:

if ($kod==0) {$s="select * from $table_sostav_komand order by kod_komandi desc"; }

else {$s="select * from $table_sostav_komand where kod_komandi=$kod"; }

$q=mysqli_query($my_connect,$s) or die ("Ошибка выбора из таблицы составов команд!");

// Выводим записи в виде таблицы

While ($row=mysqli_fetch_row($q)) {

print "<tr>";

$check='check'.$row[0];

print "<td> <input type='checkbox' name=$check id='check'> </td>";

print "<td> $row[1]</td>";

print "<td> $row[2] </td>";

print "<td> $row[3]</td>";

print "</tr>";}

Если значение переменной param равно delete, то получаем в цикле все переменные и их значения из формы, находим среди них отмеченные элементы checkbox, выделяем из имени элемента код игрока, добавляем его в массив кодов удаления $delete_kod. Если на форме есть хотя бы один отмеченный checkbox, то переменной $f присваиваем значение 1. Далее в цикле выполняем sql-запрос по логическому удалению записей в таблице составов команд столько раз, сколько элементов занесено в массив $delete_kod:

if ($f==1) {

for($i=0;$i<count($delete_kod);$i++){

mysqli_query($my_connect,"delete FROM $table_sostav_komand where Kod_igroka='$delete_kod[$i]'") or die ("Ошибка логического удаления записи из таблицы составов команд!"); }

Физически удаляем записи из таблицы составов команд:

mysqli_query($my_connect,"OPTIMIZE TABLE $table_sostav_komand") or die("Ошибка физического удаления записи из таблицы составов команд!");

Переадресуем пользователя на страницу со списком игроков той команды, к которой относился удаленный игрок:

$URL="igroki.php?param=prosmotr_all&kod=".$kodk;

header ("Location: $URL");

Алгоритм работы и действия скриптов coaches.php, komandi.php и championship.php аналогичны описанным выше скриптам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]