Посторінковий вивід списку студентів у вікні браузера за допомогою стандартних html-форм (Практична робота № 3)

Страницы работы

Содержание работы

Татарченко А. С. Ін -91

Завдання

Варіант 2. Упорядкований список студентів

Нехай у файлі в будь-якому зручному для студента вигляді записані дані відносно набору студентів. Про кожного студента зберігається інформація: ім'я, прізвище, група, стать, дата народження, середній бал. За допомогою стандартних html-форм необхідно реалізувати можливість посторінкового виводу списку студентів у вікні браузера. Кількість студентів на одній сторінці обирається користувачем. Додати можливість впорядкування списку за ім'ям, датою народження, середнім балом. Опціонально можна додати можливість фільтрації студентів за значенням обраного поля.

<?php

function cmp($a, $b) 

{return strnatcmp($a[0], $b[0]); }

function cmp_2($a, $b) 

{return strnatcmp($a[4], $b[4]); }

function cmp_3($a, $b) 

{return strnatcmp($a[5], $b[5]);} 

$a=fopen("stud.txt","r");

for ($i = 0; !feof($a); $i++)

{          $str = fgets($a);

            $ttt[$i]=explode(' ',$str);

}

session_start();

if (isset($_SESSION['start']))

{

            if ($_POST['Next']) $_SESSION['start'] += $_POST['count'];

            if ($_POST['Prev']) $_SESSION['start'] -= $_POST['count'];

            if ($_SESSION['start'] < 0) $_SESSION['start'] = 0;

            if ($_SESSION['start'] > $i) $_SESSION['start'] = $i - $_POST['count'] - 1;

}

else

{

            $_SESSION['start'] = 0;

}

$variants = array(5, 10, 15, 20, 25, 30);

$vari = array("имени", "дате рождения","среднему балу");

echo

"Количество полей на странице:

<form action=".$_SERVER["SCRIPT_NAME"]." method='post' name='pageSplitter'>

        <select name='count' style='width' : 50>";

for ($j = 0; $j < count($variants); $j++)

            echo    "<option value='".$variants[$j]."' ".($_POST['count'] == $variants[$j] ? "selected" : "").">".$variants[$j]."</option>";

echo

        "</select></p>";           

            echo "

Сортировать по:</p><select name='cr' style='width' : 50>";

for ($jj = 0; $jj < count($vari); $jj++)

            echo    "<option value='".$vari[$jj]."' ".($_POST['cr'] == $vari[$jj] ? "selec" : "").">".$vari[$jj]."</option>";

echo

        "</select></p>

                        <input type=submit name='Change' value='Змінити'>

                        <input type=submit name='Prev' value='Попередня'>

                        <input type=submit name='Next' value='Наступна'>

</form>";

echo"<table>

<tr>

<th>Номер</th>

<th>Прізвище</th>

<th>Ім'я</th>

<th>Група</th>

<th>Стать</th>

<th>Дата народження</th>

<th>Середній бал</th>

</tr>";

if($_POST['cr']==$vari[0])

  {usort($ttt, "cmp");}

 if($_POST['cr']==$vari[1])

  {usort($ttt, "cmp_2");}

   if($_POST['cr']==$vari[2])

  {usort($ttt, "cmp_3");}

for ($i = $_SESSION['start']; $i < ($_POST['count'] ? $_POST['count']: 5) + $_SESSION['start']; $i++)

{

            echo

            "<tr>

            <td>".($i + 1)."</td>

            <td>{$ttt[$i][0]}</td>

            <td>{$ttt[$i][1]}</td>

            <td>{$ttt[$i][2]}</td>

            <td>{$ttt[$i][3]}</td>

            <td>{$ttt[$i][4]}</td>

            <td>{$ttt[$i][5]}</td>

            </tr>";

}

echo "</table>";

echo "<br>Сторінка номер ".round($_SESSION['start'] / ($_POST['count'] ? $_POST['count'] : 1) + 1);

?>

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
217 Kb
Скачали:
0