4.1 Назначение и условия применения программы
Программа предназначена для хранения и вывода данных о командах, игроках, судьях, тренерах, чемпионатах и матчах. Также она генерирует таблицу результатов и турнирную таблицу на основании данных о матче.
4.2 Характеристика программы
Программа обладает стандартными временными характеристиками и стандартным режимом работы.
4.3 Обращение к программе
Для обращения к программе есть кнопки и выпадающие списки, а так же гиперссылки для удобства перемещения по сайту.
4.4 Входные и выходные данные
4.4.1 Словесное описание
Страницы содержат ряд ссылок по которым осуществляется переход на другие страницы
<div class="razdelit">Списки</div>
<ul class="nav_ul">
<li><a href="command.php">Команды </a></li>
<li><a href="player.php">Игроки </a></li>
<li><a href="sudja.php">Судьи </a></li>
<li><a href="trener.php">Тренеры </a></li>
<li><a href="chempionats.php">Чемпионаты </a></li>
Страницы «Команды» (command.php), «Игроки» (player.php), «Судьи» (sudja.php), «Тренеры» (treners.php), «Чемпионаты» (chempionats.php), «Матчи» (match.php), отображаетсоответственносписоккоманд, игроков, судей, тренеров, чемпионатовиматчейвнесенныхвбазу:
<?php
$zapros = "SELECT * From (Matches INNER JOIN MatchRezult ON Matches.idMatch=MatchRezult.idMatch),Chempionats WHERE Chempionats.idChemp=Matches.idChemp".$wyear.$wchemp;
$result = mysql_query($zapros, $db);
while ($myrow = mysql_fetch_array($result))
{
$doma = $myrow["Doma"];
$res2 = mysql_query("SELECT NameCom FROM MatchRezult, Command WHERE idCom='$doma'");
$row2 = mysql_fetch_array($res2);
$gost = $myrow["Gost"];
$res3 = mysql_query("SELECT NameCom FROM MatchRezult, Command WHERE idCom='$gost'");
$row3 = mysql_fetch_array($res3);
printf( "<tr class='tabler2'>
<td class='tabler2'>%s</td>
<td class='tabler2'><a href='view_match.php?id=%s' >%s:%s</a></td>
<td class='tabler2'>%s</td>
<td class='tabler2'>%s</td>
<td class='tabler2'>%s</td>
</tr>",$row2[0], $myrow["idMatch"],$myrow["ZabMjach"],$myrow["PropMjach"], $row3[0], $myrow["DateMatch"],$myrow["CityMatch"]);
}
?>
Страница «Таблица »(table.php) производит подсчет очков, количества игр, разницы между забитыми и пропущенными мячами, количества поражений, побед и ничьих команд в соответствующем чемпионате:
<?php
$zapros="SELECTID,NameCom, Gorod, sum(igrDoma) igr, sum(zab)-sum(prop) mjach, sum(ochki) ochki,sum(vdoma) vdoma,sum(ndoma) ndoma,sum(pdoma) pdoma,sum(vgost) vgost,sum(ngost) ngost,sum(pgost) pgost, sum(prgost) prgost, sum(zabgost) zabgost, sum(prdoma) prdoma, sum(zabdoma) zabdoma
FROM(
SELECT Command.idCom as ID, NameCom, Gorod, count(Gost) as igrDoma, PropMjach zab,ZabMjach prop,
CASE
WHEN PropMjach-ZabMjach>0
THEN '3'
WHEN PropMjach-ZabMjach=0
THEN '1'
ELSE '0'
END ochki,
CASE
WHEN PropMjach-ZabMjach>0
THEN '1'
ELSE '0'
END vgost,
CASE
WHEN PropMjach-ZabMjach=0
THEN '1'
ELSE '0'
END ngost,
CASE
WHEN PropMjach-ZabMjach<0
THEN '1'
ELSE '0'
END pgost,0 vdoma,0 ndoma,0 pdoma, PropMjach zabgost,ZabMjach prgost, 0 prdoma, 0 zabdoma
FROM Command, Chempionats, MatchRezult, Matches
WHERE NameChemp='Чемпионат России' and
Matches.idMatch=MatchRezult.idMatch and
Command.idCom=Gost and
Matches.idChemp=Chempionats.idChemp".$wyear."GROUP BY MatchRezult.idMatch
UNION ALL
SELECT Command.idCom as ID, NameCom, Gorod, count(Doma) as igrDoma, ZabMjach zab, PropMjach prop,
CASE
WHEN PropMjach-ZabMjach<0
THEN '3'
WHEN PropMjach-ZabMjach=0
THEN '1'
ELSE '0'
END ochki, 0,0,0,
CASE
WHEN PropMjach-ZabMjach<0
THEN '1'
ELSE '0'
END vgost,
CASE
WHEN PropMjach-ZabMjach=0
THEN '1'
ELSE '0'
END ngost,
CASE
WHEN PropMjach-ZabMjach>0
THEN '1'
ELSE '0'
END pgost, 0 zabgost, 0 prgost, PropMjach prdoma,ZabMjach zabdoma
FROM Command, Chempionats, MatchRezult, Matches
WHERE NameChemp='Чемпионат России' and
Matches.idMatch=MatchRezult.idMatch and
Command.idCom=Doma and
Matches.idChemp=Chempionats.idChemp".$wyear."GROUP BY MatchRezult.idMatch
) xxx
GROUP BY ID ORDER BY ochki desc";
$result = mysql_query($zapros, $db);
$i=1;
while($myrow = mysql_fetch_array($result))
{
printf(" <tr>
<td class='tabler2' align='right'>%s. </td>
<td class='tabler2' align='left'> <a href='view_command.php?id=%s' >%s</a>(%s)</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='right'> %s</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='center'> </td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='right'> %s - %s</td>
<td class='tabler2' align='right'> </td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='center'> %s</td>
<td class='tabler2' align='right'> %s - %s</td>
<td class='tabler2' align='right'> </td>
</tr>",$i,$myrow['ID'],$myrow['NameCom'],$myrow['Gorod'],$myrow['igr'],$myrow['mjach'],$myrow['ochki'], $myrow['vdoma'], $myrow['ndoma'], $myrow['pdoma'], $myrow['zabdoma'], $myrow['prdoma'], $myrow['vgost'], $myrow['ngost'], $myrow['pgost'], $myrow['zabgost'], $myrow['prgost']
);
$i++;
}
?>
Страница «Результаты »(resгlt.php) генерирует турнирную сетку в соответствии с результатами матчей:
<?php
$zapros = "SELECT Command.idCom as ID, NameCom, Gorod
FROM Command, Chempionats, CommandInChemp
WHERE NameChemp='ЧемпионатРоссии' and
Command.idCom=CommandInChemp.idCom and
Chempionats.idChemp=CommandInChemp.idChemp".$wyear." GROUP BY Command.idCom";
$result = mysql_query($zapros, $db);
$i=1;
$k=1;
printf(" <tr>
<td width='25' class='tabler'> </td>
<td width='50' class='tablerrez'> команда</td>");
while ($myrow = mysql_fetch_array($result))
{
printf("<td align='center' width='25' class='tablerrez'> %s</td>", $i);
$comarray[$i]=$myrow['ID'];
$i++;
}
printf(" </tr>");
$result = mysql_query($zapros, $db);
while($myrow = mysql_fetch_array($result))
{
$c=1;
$zapis=1;
printf(" <tr>
<td width='25' class='tablerrez'> %s</td>
<td>
<table width='140' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='tablerrez2'> %s</td>
</tr>
<tr>
<td class='tablerrez'> %s</td>
</tr>
</table>
</td>",$k, $myrow['NameCom'],$myrow['Gorod']);
do {
if($k==$c)
{
$c++;
}
else
{
$vgost = $myrow["ID"];
$res3 = mysql_query("SELECT Doma, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Gost='$vgost' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Doma ");
$row3 = mysql_fetch_array($res3);
$vdoma = $row3['Doma'];
do {
$vdoma = $row3['Doma'];
if ($comarray[$c]==$vdoma)
{
$gostarray[$k][$c]=$row3['PropMjach'].":".$row3['ZabMjach'];
$zapis++;
}
else
if($k==$c)
{
$res3 = mysql_query("SELECT Doma, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Gost='$vgost' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Doma ");
for($mas=1;$mas<$c;$mas++)
$row3 = mysql_fetch_array($res3);
}
else
{
$res3 = mysql_query("SELECT Doma, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Gost='$vgost' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Doma ");
for($mas=1;$mas<$zapis;$mas++)
$row3 = mysql_fetch_array($res3);
}
$c++;
}
while($c<$i && $row3 = mysql_fetch_array($res3));
}//else
}
while($c<$i);
$c=1;
$zapis=1;
do {
if($k==$c)
{
printf("
<td width='25' bgcolor='#939393'>
</td>");
$c++;
}
else
{
$doma = $myrow["ID"];
$res2 = mysql_query("SELECT Gost, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Doma='$doma' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Gost ");
$row2 = mysql_fetch_array($res2);
$gost = $row2['Gost'];
if($gost == '')
{
printf("
<td width='25'>
<table width='35' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='tablerrez2'> </td>
</tr>
<tr>
<td class='tablerrez3'> %s</td>
</tr>
</table>
</td>",$gostarray[$k][$c]);
$c++;
}
else
{
do {
$gost = $row2['Gost'];
if ($comarray[$c]==$gost)
{
printf("
<td width='25'>
<table width='35' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='tablerrez2'> %s:%s</td>
</tr>
<tr>
<td class='tablerrez3'> %s</td>
</tr>
</table>
</td>",$row2['ZabMjach'],$row2['PropMjach'],$gostarray[$k][$c]);
$zapis++;
}
else
if($k==$c)
{
printf("
<td width='25' bgcolor='#939393'>
</td>");
$res2 = mysql_query("SELECT Gost, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Doma='$doma' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Gost ");
for($mas=1;$mas<$c;$mas++)
$row2 = mysql_fetch_array($res2);
}
else
{
printf("
<td width='25'>
<table width='35' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td class='tablerrez2'> </td>
</tr>
<tr>
<td class='tablerrez3'> %s</td>
</tr>
</table>
</td>",$gostarray[$k][$c]);
$res2 = mysql_query("SELECT Gost, ZabMjach, PropMjach FROM MatchRezult,Matches, Chempionats
WHERE Doma='$doma' and
Matches.idMatch=MatchRezult.idMatch and
NameChemp='ЧемпионатРоссии' and
Chempionats.idChemp=Matches.idChemp".$wyear."ORDER BY Gost ");
for($mas=1;$mas<$zapis;$mas++)
$row2 = mysql_fetch_array($res2);
}
$c++;
}
while($c<$i && $row2 = mysql_fetch_array($res2));
}
}//else
}
while($c<$i);
$k++;
printf(" </tr>");
}
?>
Также в приложении присутствует администраторская часть, предназначенная для добавления редактирования и удаления данных. Входными данными являются данные, введенные пользователем в соответствующие поля.
4.4.2 Описание функций
mysql_connect() – подключение к MySQL;
include("bd.php") – подключение к файлу;
printf() – вывод информации на экран;
mysql_query () – возвращение результата запроса;
mysql_fetch_array () – получение результата запроса;
echo – вывод информации;
4.5 Сообщения
Сообщения выводятся только в администраторской части программы. При неверных действиях пользователей недопустимых значениях входных данных, система выдает пользователю соответствующие сообщения. При успешном завершении действия пользователь тоже получает сообщения об успешном завершении.
5. Сопровождение. Руководство пользователя