Разработка информационной системы управления учебным процессом (на примере филиала РГТУ г. Всеволожска)

Исследование современных технологий и средств разработки. Выявление и оценка информационных потоков и структуры информации. Выбор необходимой информации для информационной системы. Проектирование и анализ системы навигации. Проектирование базы данных.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 21.01.2012
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Сетевая модель имеет много общего с иерархической, только каждый элемент может быть связан с любым другим элементом системы.

2.10 Сетевая структура данных

Плюсом данной структуры является её высокая эффективность при высоких нагрузках. Недостатком же такой структуры является сложность проектирования и дальнейшей модификация структуры. Иным, словом данная схема данных является жёсткой и при изменении программного обеспечения приведет к смене структуры базы данных, что в нашем случае не приемлемо.

Реляционная база данных - это хранилище данных, представленных в виде двумерных таблиц, каждая такая таблица в реляционной базе данных состоит из записей и столбцов.

Реляционные базы данных построены на основе отношений, обычно называемых таблицами.[17]

На пересечении строк и столбцов и строки находятся значения содержащихся в таблице данных.

Отличия данных в таблицах реляционной базы данных:

- Все значения, содержащиеся на пересечении строк и столбцов, должны быть конечными.

- Все значения одного столбца должны иметь один тип данных.

- В таблице не должно быть несколько записей на одном пересечении.

- Все поля базы данных имеют уникальные имена.

- Несущественна последовательность полей в таблице.

- Несущественна последовательность записей в таблице.

Часто встречается ситуация, когда некоторые поля одних объектов указывают на другие объекты. Для реализации под СУБД данного механизма лучше всего объявить некоторые поля - ключи.[24]

Ключом называется поле или комбинация полей, значения которых идентифицируют каждую запись таблицы. Если таблица имеет несколько таких ключей, то один из них выделяют в качестве первичного. Первичный ключ должен быть уникальным и не пустым для каждого поля таблицы.

Поле значение, которого указывает на запись в другой таблице, называется внешним ключом. Такое взаимоотношение между разными таблицами называется связью.

Для работы с реляционными базами данных был разработан язык SQL. SQL - это язык ориентированный специально на реляционные базы данных. Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации извлеченной или полученной из их, в виде единого модуля. [21]

Главным плюсом, благодаря которому реляционная модель приобрела популярность, заключается в её понятности, простоте использования и удобстве реализации, но и у реляционной модели есть свои минусы. Не правильное моделирование базы данных может привести к чрезмерной избыточности данных, что, при существенном увеличении, может привести к пере наполнению базы данных.

2.5.2 Создание логической модели данных

Во время анализа информационной структуры был выделен ряд подсистем, функционирование которых требуется автоматизировать:

- студенты;

- преподаватели;

- кафедры;

- специальности;

- предметы;

- ведомости.

Определим одноименные сущности для проектируемой ИС.

Часто в средствах логической разработки используются связи типа сущность-связь - ER диаграммы.

Каждый студент учится по своей специальности, следовательно, прослеживается связь между сущностями «Студенты» и «Специальность». Каждый студент находятся в группе - сущность «Группы».

Каждый преподаватель закреплен за определенной кафедрой и ведет свои предметы, следовательно, имеется связи между сущностями «Преподаватели», «Кафедры» и «Предметы». Каждый преподаватель имеет свою ученую степень на основе, которой ему начисляется заработная плата. Для этого потребуется создать отдельную сущность «Ученые степени» и связать её с сущностью «Преподаватели».

Сущность «Ведомости» формируется за счет сущностей «Предметы» «Преподаватели», «Группы» и «Студенты». Общая логическая модель данных представлена на Рис 2.11.

Рис 2.11 Общая логическая модель данных

Любые логические ER диаграммы могут быть представлены в реляционных базах данных как таблицы. Требуется только задать первичные и внешние ключи для каждой таблицы базы данных и провести нормализацию.

Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД.

Отношение находится в первой нормальной, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов.

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

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

Отношение находится в нормальной форме Бойса тогда и только тогда, когда каждая ее нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.

Таблица находится в четвёртой нормальной форме, если она находится в нормальной форме Бойса и не содержит нетривиальных многозначных зависимостей.

Отношение находится в пятой нормальной форме, когда каждая нетривиальная зависимость соединения в нём определяется потенциальным ключом этого отношения.

Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

Выделим ключевые атрибуты для каждой сущности (Таблица 1)

Таблица 2.1

Атрибуты сущностей

Сущность

Атрибуты

Студенты

id, Фамилия, Имя, Отчество, Специальность, Год поступления, id группы, Номер зачетной книжки

Преподаватели

Id, Фамилия, Имя, Отчество, id ученой степени, id кафедры, id преподаваемых предметов

Кафедры

id, Название, Заведующий кафедрой

Предметы

id, Название

Специальности

id, Название

Ученые степени

id, Название

Группы

id, Название, год обучения, номер группы

Список_Ведомостей

Id, id предмета, id группы, дата

Ведомости

Id, id ведомости, id студента, оценка

Ниже приведен полный список таблиц и использованных в них полей. Пометка PK рядом с атрибутом означает - первичный ключ, пометка FK - внешний ключ, UN - уникальный ключ.

Таблица 2.2

Таблица «Студенты»

Название столбца

Тип данных

Пометка

id

Целое

PK, UN

Фамилия

Строка

Имя

Строка

Отчество

Строка

Id специальности

Целое

FK

Год поступления

Дата

id группы

Целое

FK

Номер зачетной книжки

Строка

UN

Таблица 2.3

Таблица «Преподаватели»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Фамилия

Строка

Имя

Строка

Отчество

Строка

id ученой степени

Целое

FK

id кафедры

Целое

FK

id преподаваемых предметов

Строка

FK

Таблица 2.4

Таблица «Кафедры»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Заведующий кафедрой

Строка

Таблица 2.5

Таблица «Предметы»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.6

Таблица «Специальности»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.7

Таблица «Ученые степени»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.8

Таблица «Группы»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Номер группы

Целое

Год обучения

Целое

Таблица 2.9

Таблица «Список ведомостей»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

id предмета

Целое

FK

id группы

Целое

FK

дата

Дата

Таблица 2.10

Таблица «Ведомости»

Название столбца

Тип данных

Пометка

Id

Целое

PK

id ведомости

Целое

FK, UN

id студента

Целое

FK

оценка

Строка

Концептуальная модель базы данных информационной системы изображена на рис. 2.12.

Рис. 2.12 Концептуальная модель базы данных информационной системы

Выводы

Во второй главе осуществлено проектирование информационной системы для филиала РГГУ г. Всеволожск.

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

Для проектирования базы данных информационной системы выбрана реляционная модель данных. Построены логические и концептуальные модели базы данных. В процессе разработки использована нормализованная модель базы данных.

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИНОФРМАЦИОННОЙ СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ

3.1 Выбор инструментальных средств

Для разработки информационной системы для филиала РГГУ г.Всеволожск были выбраны следующие инструментальные средства:

1. NetBeans 6.9 - NetBeans IDE является интегрированной средой разработки для Linux, Mac, Windows и Solaris. NetBeans является open-source IDE и позволяет разработчикам быстро создавать веб-приложения для мобильных и настольных приложений с помощью Java, JavaFX, PHP, JavaScript и Ajax, Ruby и Ruby On Rails, Groovy и Grails, и C / C + +. Для автора интересна поддержка PHP, Javascript и HTML+CSS. Из полезных функций можно отметить -- запоминание и подсказки css-селекторов в html коде. Еще одним плюсом использования NetBeans является поддержка таких Фреймворков как Zend Framework и Symfony.

PHP - это серверный язык создания сценариев (или стороны сервера), разработанный специально для Web.Код PHP интерпритируется Web-сервероми генерирует HTML или иной вывод, наблюдаемый посетителем страницы.[17]. PHP поддерживается почти на всех известных платформах и во всех операционных системах на самых разных серверах.[11]

2. Adobe Dreamweaver CS4 - позволяет используя визуальные методы с легкостью проектировать веб-дизайн приложений. Программа имеет полную поддержку формата CSS (Cascading Style Sheets - каскадные таблицы стилей). Данная программы была выбрана потому, что она представляет собой профессиональное средство для верстки веб страниц с богатым набором функций для разработки веб приложений прекрасно сочетающее в себе смешанный режим работы код+дизайн.

3. Для редактирования графических элементов информационной системы автором будет использоваться Adobe Photoshop CS 4.

4. Quanta Plus - открытая версия HTML редактора для web-разработчиков в среде KDE. Используется автором для быстрого редактирования HTML кода при тестировании.

5. phpMyAdmin - приложение позволяющее выполнять всю удаленную работу с базами данных MySQL посредством браузера. Будет использоваться для создания, настройки и редактирования базы данных информационной системы.

3.2 Выбор СУБД

В качестве СУБД автором выбрана реляционная СУБД MySQL. Данная система позволяет хранить все данные информационной системы в базе данных на сервере. Таким образом, все клиенты системы будут обращаться к одной базе данных посредством ИС. Преимуществами данной СУБД являются:

- быстродействие;

- высокий уровень безопасности;

- надежность;

- переносимость.

Если говорить более предметно, то использование реляционной базы данных дает возможность быстро и без особых усилий ответить на такие вопросы как «из какой группы студент», к какой кафедре закреплен преподаватель»[11].

3.3 Создание физической модели данных

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

Физическая модель базы данных информационной системы для филиала РГГУ в г. Всеволожск представлена на рис. 3.1.

Рис 3.1. физическая модель базы данных информационной системы для филиала РГГУ в г. Всеволожск

Для создания баз данных в SQL используется команда CREATE DATABASE. Для создания таблиц используется команда CREATE TABLE. Полный набор команд для создания базы данных для информационной системы представлен в Приложении 1.

Все взаимодействия с базой данных информационная система осуществляет посредством встроенных функций языка PHP. Для соединения с базой данных используется функция:

$mysqli = new mysqli("HOST", "USER", "PASSWORD", "DB_NAME");

if (mysqli_connect_errno()) {

printf("Соединение не удалось: %s\n", mysqli_connect_error());

}

Для выполнения различных запросов к базе данных информационной системы была написана функция getinfo:

function getinfo($sql)

{

$mysqli = new mysqli("HOST", "USER", "PASSWORD", "DB_NAME");

if (mysqli_connect_errno()) {

printf("Соединение не удалось: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

$data[] .= $fieldValue;

}

}

$result->close();

$mysqli->close();

return $data;

};

3.4 Физическая реализация информационной системы

Для реализации информационной системы для филиала РГГУ г. Всеволожск была использована СУБД MySQL и написано приложение для обработки данных и взаимодействием с пользователями на PHP.

После запуска информационной системы запускается главная страница где пользователь системы может выбрать интересующий его раздел.

Исходя из выбора пользователя, он может попасть в разделы, отвечающие за изменение, добавление, удаление и печать необходимой пользователю информации в соответствующих для этого разделах.

В разделе «Личная информация» пользователь может управлять группами студентов, личной информацией студентов и преподавателей.

В разделе «Группы студентов» пользователь может просмотреть полный список групп студентов в университете, удалить, отредактировать и создать новые группы.

Если требуется отредактировать информацию о группе, то для этого нужно нажать на соответствующую пиктограмму напротив нужно группы.

Если в разделе «Группы студентов» нажать на ссылку «Добавить группу», то откроется страница, где можно будет ввести, название новой группы, год обучения группы и номер группы

Если по какой либо причине не будет заполнено хоть одно из полей, то будет выдано соответствующее информационное сообщение.

На вкладке «Студенты» можно просмотреть список и данные всех студентов.

Если в разделе «Студенты» нажать на ссылку «Добавить студента», то откроется страница, где можно будет ввести данные нового студента.

Если требуется отредактировать информацию о студенте, то для этого нужно нажать в разделе «Студенты» нажать на соответствующую пиктограмму напротив нужного студента. На данной странице информационная система будет предлагать указать группу, в которой будет состоять студент и специальность, на которую он обучается. В качестве года поступления по умолчанию предлагается текущий год.

В разделе «Преподаватели» пользователь может добавить, удалить или отредактировать преподавательский состав университета.

Если требуется, то пользователь в данном разделе может удалить, добавить или отредактировать информацию о преподавателях.

На странице добавления в базу данных нового преподавателя будет предложено выбрать ученую степень преподавателя, кафедру и список предметов лекции, которых он будет читать.

Перейдя в раздел «Кафедры» пользователь может просмотреть весь персонал на кафедрах, редактировать, создавать и удалять кафедры, а так же управлять списком специальностей и предметов.

На странице «Кафедры» пользователь можете добавить новую кафедру или отредактировать (удалить) уже существующую.

В разделе «Персонал» ИС предлагает выбрать кафедру, персонал которой можно просмотреть.

В разделе «Специальности» пользователь может просматривать добавлять, редактировать и удалять специальности.

В разделе «Предметы» пользователь может редактировать, удалять и добавлять новые предметы.

В разделе «Ведомости» пользователю предлагается выбрать соответствующий раздел ведомостей, которые он может просматривать и редактировать.

В разделе «Ведомости по группам» пользователю предлагается выбрать группу ведомости, которой он может отредактировать или добавить.

После выбора интересующей группы ИС показывает существующие ведомости на эту группу. Если их нет, то система предлагает создать ведомость.

На странице «Создание ведомостей» ИС предлагает выбрать предмет, на который будет создаваться ведомость и попросит ввести дату проведения зачета/экзамена. По умолчанию ИС предлагает текущую дату.

После нажатия на кнопку «Создать» информационная система предоставит страницу, на которой нужно будет выбрать преподавателя, который принимал экзамен по этому предмету и заполнить поля с оценками. На странице заполнения ведомостей ИС предлагает список только тех преподавателей, которые могут вести выдранный предмет. Иными словами, этот предмет должен быть отмечен в личной информации преподавателя.

После чего в списках ведомостей на группу появится ссылка на созданную ведомость. Откуда можно будет либо отредактировать ее, либо отправить на печать.

Листинг всех функций с содержанием SQL запросов представлен в Приложении 2.

3.5 Тестирование информационной системы

Тестирование - это процесс исполнения программы на компьютере с целью обнаружения ошибок.[12]

Тестом будем называть информацию, состоящую из исходных данных, специально подобранных для отлаживаемой программы, и из соответствующих им эталонных результатов (не только окончательных, но и промежуточных), используемых в дальнейшем для контроля правильности работы программы.[12]

Прежде чем начинать внедрять новый продукт на предприятии заказчика, его требуется предварительно протестировать с целью выявления ошибок и не точностей в работе приложения, проведем альфа-тестирование.

Альфа-тестирование - это имитация реальной работы с системой в качестве пользователя штатными разработчиками приложения. Такое тестирование часто выполняется под отладчиком.

Тестирование будет проходить по стратегии черного ящика. В качестве объекта тестирования будет взят модуль добавления нового.

Стратегия черного ящика предполагает под собой некий объект «черный ящик» над которым будут производиться внешние воздействия. В данном случае будет отслеживаться результат ответа информационной системы при различных входных данных.

Таблица 3.1

Тестирование модуля «Добавление нового студента»

Поле

Входные данные

Ожидаемый ответ

Ответ системы

Фамилия

Пусто

Отказ добавления студента

Система не добавляет студента без ввода фамилии и сообщает, что поле Фамилия пустое.

Имя

Пусто

Отказ добавления студента

Система не добавляет студента без ввода имени и сообщает, что поле Имя пустое.

Отчество

Пусто

Отказ добавления студента

Система не добавляет студента без ввода отчества и сообщает, что поле Отчество пустое.

Специальность

Не выбрана

Отказ добавления студента

Система не добавляет студента без выбора специальности и сообщает, что выбор не сделан.

Группа

Не выбрана

Отказ добавления студента

Система не добавляет студента без выбора группы и сообщает, что выбор не сделан.

Год обучения

Пусто

Отказ добавления студента

Система не добавляет студента без ввода даты его поступления и сообщает, что дата не введена.

Номер зачетной книжки

Пусто

Отказ добавления студента

Система не добавляет студента без ввода его номера зачетной книжки и сообщает об этом.

При тестировании не было найдено ни одной ошибки - во время разработки информационной системы автором были предусмотрены все варианты не точных вводимых данных в информационную систему. Для каждой ошибки пользователя и неточности, вводимых им данных было предусмотрен вывод соответствующих информационных сообщений.

3.6 Установка информационной системы

база данное информация навигация

Распакуйте дистрибутив в корневую директорию вашего веб-сервера;

Убедитесь, что все скрипты имеют права на выполнения и имеют соответствующего владельца;

В файле «functions.php» укажите соответствующие данные для подключения к базе данных:

define ("HOST_DB", "host");

define ("DB_USER", "user");

define ("DB_PASS", "pass");

define ("DB_NAME", "name");

Для этого замените host на IP сервера базы данных, user на пользователя базы данных, pass на пароль и name на имя базы данных.

Подключившись к базе данных под соответствующим пользователем и выбрав нужную базу данных выполните код приведенный в Приложении 1 в окне командного интерпретатора MySQL. Код создаст на сервере необходимую структуру базы данных, после чего информационная система станет доступна и войти в нее можно будет, введя в окне браузера адрес http://localhost или http://127.0.0.1/. Внимание, адрес может быть иной, в зависимости он настройки сервера.

Выводы

В третьей главе обоснован выбор инструментальных средств разработки. В качестве среды разработки выбрана IDE NetBeans 9.1 с поддержкой PHP. В качестве СУБД автором использована система управления базами данных MySQL.

Разработана структурная и физическая модель базы данных.

Проведена разработка информационной системы.

Проведено альфа-тестирование программного продукта по стратегии «черного ящика».

Написана инструкция для пользователей по внедрению и установки информационной системы.

ЗАКЛЮЧЕНИЕ

В ходе дипломного проекта была разработана информационная система управления учебным процессом филиала РГГУ в г. Всеволожск. Был решен ряд задач:

- рассмотрены теоретические основы проектирования информационных систем;

- проведено проектирование информационной системы;

- выполнена программная реализация информационной системы управления учебным процессом.

В первой главе автор провел полный анализ предметной области и рассмотрел ряд программных продуктов имеющихся на рынке. Было проведено моделирование бизнес процессов объекта исследования. Так же были выделены основные требования к разрабатываемой информационной системе.

Проектирование информационной системы и функционала системы для филиала РГГУ г. Всеволожск было проведено во второй главе. При проектировании системных объектов автором было использована технология UML моделирования. В качестве структуры модели данных автором была выбрана реляционная модель. Построены концептуальные и логические модели базы данных.

В третьей главе была проведена реализация разрабатываемого программного продукта. В качестве среды разработки автором была выбрана IDE NetBeans 9.1 с поддержкой PHP. В качестве СУБД автор использовал MySQL. В третьей главе автор разработал структурную и физическую модель базы данных.

При проведении альфа-тестирования разработанной информационной системы ошибок выявлено не было.

За счет внедрения в практику деятельности учебного отдела филиала РГГУ г. Всеволожск разработанной информационной системой было уменьшено время на составление ведомостей. Структурированы и систематизированы данные по студентам, предметам и преподавателям. Появилась возможность расширения и дальнейшего наращивания информационной системы для автоматизации управления учебным процессом.

СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

1. ИСТОЧНИКИ

1. Устав филиала РГГУ в г. Всеволожск

2. ГОСТ 34.601-90 - «Автоматизированные системы. Стадии создания»

3. ГОСТ 34.320.96 - «Концепция и терминология для концептуальной схемы и информационной базы»

2. ЛИТЕРАТУРА

4. Документирование управленческой деятельности. - СПб.: Изд-во Сев.-зав.гос. тех.ун-та, 2008. -С.3.

5. Басков А. В. Информационный поток [Электронный ресурс]. - Режим доступа: http://newideology.ru/slovar/i/informatsionnyi-potok/

6. Веллинг Л., Томсон Л. Разработка веб-приложений с помощью PHP и MySQL. - М.: Вильямс, 2010. - 848с.

7. Грекул В.И. , Денищенко Г.Н. Проектирование информационных систем. - М.: Интернет-университет информационных технологий, 2008. - 304 с.

8. Гудлиф П. Ремесло программиста. Практика написания хорошего кода. Пер. с англ. - М.: Символ-Плюс, 2009. - 704с.

9. Зандстра М. PHP. Объекты, шаблоны и методики программирования. Пер. с англ. - М: Вильямс, 2009. - 480с.

10. Кириллов В.В., Громов Г.Ю. Введение в реляционные базы данных. - СПб.: БХВ-Петербург, 2009. - 464с.

11. Савельева Н.В. Основы программирования на PHP. - М: Интернет-университет информационных технологий. - 2005. - 264 с.

12. Медведев А. М., Швецкой М. В. Некоторые вопросы методологии отладки программ [Электронный ресурс]. - Режим доступа: http://it.kgsu.ru/Otladka/otl_0007.html

13. Онлайн энциклопедия Wikipеda [Электронный ресурс]. - Режим доступа: http://ru.wikipеdia.оrg

14. Скляр Д., Трахтенберг А. PHP. Рецепты программирования. - СПб.: БХВ-Петербург, 2007. - 736с.

15. Селко Д. SQL для профессионалов. Программирование. Пер. с англ. - М.: Лори, 2009. - 464с.

16. Хольцнер С. PHP в примерах. - М.: Бином-Пресс, 2009.- 350с.

17. Томсон Л., Веллинг Л, Разработка Web-приложений на на PHP и MySQL. - СПб.: ООО «»ДиаСофтЮП», 2003. - 672 с.

18. Хаббард Дж. Автоматизированное проектирование структур баз данных - М.: Мир, 1984. - 342с.

19. Козырев А.А. Информационные технологии в экономике и управлении: Учебник. - СПб.: Изд-во Михайлова В. А., 2000. - 360 с.

20. Титоренко Г.А. Информационные системы в экономике. - М.: Юнити-Дана, 2008. -- 463 с.

21. Грабер М. SQL. - М.:Лори, 2007. -- 672 с.

22. Плаксин М. Тестирование и отладка программ - для профессионалов будущих и настоящих. - М.:Бином, 2007. - 168 с.

23. Первозванский А. Курс теории автоматического управления. - М.:Лань, 2010. - 624 стр.

24. Фельдман А. Создаем информационные системы. - М.: СОЛОН-ПРЕСС, 2006. - 120с.

25. Уткин В. Информационные системы в экономике. - М.: Издательский центр "Академия", 2004. - 288с.

26. Федорова Г.Н. Информационные системы . - М.: Academia, 2010. - 208 c.

ПРИЛОЖЕНИЕ 1

Структура базы данных «rggu»

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- База данных: `rggu`

--

-- --------------------------------------------------------

--

-- Структура таблицы `Departments`

--

CREATE TABLE `Departments` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

`ZavDepartment` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;

--

-- Структура таблицы `group`

--

CREATE TABLE `group` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`year` int(11) NOT NULL,

`group_number` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------

-- --------------------------------------------------------

--

-- Структура таблицы `lectures`

--

CREATE TABLE `lectures` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Surname` varchar(50) NOT NULL,

`Name` varchar(50) NOT NULL,

`Patronymic` varchar(50) NOT NULL,

`Stepen_id` int(11) NOT NULL,

`Departmen_id` int(11) NOT NULL,

`items_id` varchar(500) NOT NULL,

UNIQUE KEY `id_2` (`id`), KEY `id` (`id`)

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

-- --------------------------------------------------------

--

-- Структура таблицы `predm`

--

CREATE TABLE `predm` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

--

-- Структура таблицы `spec`

--

CREATE TABLE `spec` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--

-- Структура таблицы `stepeni`

--

CREATE TABLE `stepeni` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

-- --------------------------------------------------------

--

-- Структура таблицы `students`

--

CREATE TABLE `students` (

`id` int(11) NOT NULL AUTO_INCREMENT, `Surname` varchar(50) NOT NULL, `Name` varchar(50) NOT NULL, `Patronymic` varchar(50) NOT NULL, `Specialty` varchar(50) NOT NULL, `Entered` year(4) NOT NULL,

`group_id` int(11) NOT NULL, `N_zach` varchar(20) NOT NULL,

PRIMARY KEY (`id`), UNIQUE KEY `N_zach` (`N_zach`), UNIQUE KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--

-- Структура таблицы `vedomosti`

--

CREATE TABLE `vedomosti` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`id_stud` int(11) NOT NULL,

`id_ved` int(11) NOT NULL,

`ocenka` varchar(20) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;

-- --------------------------------------------------------

-- Структура таблицы `vedomosti_list`

CREATE TABLE `vedomosti_list` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`id_predm` int(11) NOT NULL,

`group_id` int(11) NOT NULL,

`prep` int(11) NOT NULL,

`date` date NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;

ПРИЛОЖЕНИЕ 2

Листинг файла «functions.php»

<?php

define ("HOST_DB", "localhost");

define ("DB_USER", "user");

define ("DB_PASS", "pass");

define ("DB_NAME", "database");

function getinfo($sql)

{

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

$data[] .= $fieldValue;

}

}

$result->close();

$mysqli->close();

return $data;

};

function execute($sql){

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$mysqli->query($sql);

$mysqli->close();

return 1;

}

function get_all_id_students(){

$sql='SELECT `id` FROM `students`';

return (getinfo($sql));

}

function get_all_id_groups(){

$sql='SELECT `id` FROM `group`';

return (getinfo($sql));

}

function get_all_id_lectures(){

$sql='SELECT `id` FROM `lectures`';

return (getinfo($sql));

}

function all_info_students(){

$ids=get_all_id_students();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Specialty`,`Entered`,`group_id`, `N_zach` FROM `students` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Specialty")$value=get_spec_name ($value);

if($key=="group_id")$value=get_group($value);

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close();

$mysqli->close();

echo " <td><div align=\"center\"><a href=\"students.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_students.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function all_info_groups(){

$ids=get_all_id_groups();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `name`,`year`,`group_number` FROM `group` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close();

$mysqli->close();

echo "

<td><div align=\"center\"><a href=\"groups.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_groups.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_name_group_full($id){

$sql="SELECT `name`,`year`,`group_number` FROM `group` where `id`=$id";

$group=getinfo($sql);

$group=$group[0].$group[1].$group[2];

return $group;

}

function all_info_lectures(){

$ids=get_all_id_lectures();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Stepen_id`,`Departmen_id`,`items_id` FROM `lectures` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Stepen_id")$value=get_stepen_name ($value);

if($key=="Departmen_id")$value=get_kaf_name ($value);

if($key=="items_id")$value=get_items_name ($value);

echo "<td><div align=\"center\">$value</div></td>"; }

$result->close();

$mysqli->close();

echo "

<td><div align=\"center\"><a href=\"lectures.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_lectures.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_all_info_spec(){

$count= getinfo("SELECT count(`id`) from `spec");

$count=$count[0];

$sql="SELECT `id`, `Name` from `spec`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){ foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if(($id)&&($Name)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td><a href=\"spec.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_spec.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr>

" ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

}

function get_all_info_predm(){

$count= getinfo("SELECT count(`id`) from `predm");

$count=$count[0];

$sql="SELECT `id`, `Name` from `predm`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if(($id)&&($Name)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td><a href=\"predm.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_predm.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr> " ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

}

function id_info_lectures($kaf){

$ids=getinfo("SELECT `id` FROM `lectures` where `Departmen_id`=$kaf");

foreach($ids as $id){ echo "<tr>";

if($kaf) $sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Stepen_id`,`Departmen_id`,`items_id` FROM `lectures` where `Departmen_id`=$kaf and id=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Stepen_id")$value=get_stepen_name ($value);

if($key=="Departmen_id")$value=get_kaf_name ($value);

if($key=="items_id")$value=get_items_name ($value);

echo "<td><div align=\"center\">$value</div></td>";

$value="";

}

$result->close();

$mysqli->close();

if(!$kaf)echo "

<td><div align=\"center\"><a href=\"lectures.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"lectures.php?act=edit&id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_all_kaf_li(){

$ids=get_all_kaf_id();

foreach($ids as $id){

echo "<li><a href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id) ."</li>" ;

}

}

function get_all_predm_li(){

$ids=get_all_predm_id();

foreach($ids as $id){

echo "<li><a href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id) ."</li>" ;

}

}

function get_all_predm_li_ved(){

$ids=get_all_predm_id();

foreach($ids as $id){

echo "<li><a href=\"ved_predm.php?predm=$id\">". get_predm_name($id) ."</li>" ;

}

}

function get_all_group_li_a(){

$ids=get_group_id();

foreach($ids as $id){

echo "\n<li><a href=\"vedomost_group.php?group=$id\">". get_group_name($id) .get_group_number($id).get_group_year($id)."</li>" ;

}

}

function get_all_kaf_dep(){

$count=getinfo("SELECT count(`id`) from `Departments`");

$count=$count[0];

$sql="SELECT `id`, `Name`, `ZavDepartment` from `Departments`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if($key=="ZavDepartment")$zav=$value;

if(($id)&&($Name)&&($zav)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td>$zav</td><td><a href=\"department.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_department.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr>

" ; $id=""; $Name=""; $zav="";

};

};

};

$result->close();

$mysqli->close();

return $data;

}

function del_student($id){

$sql="DELETE FROM `students` where `id`=$id";

execute($sql);

return 1;

}

function del_group($id){

$sql="DELETE FROM `group` where `id`=$id";

execute($sql);

return 1;

}

function del_lectures($id){

$sql="DELETE FROM `lectures` where `id`=$id";

execute($sql);

return 1;

}

function del_kaf($id){

$sql="DELETE FROM `Departments` where `id`=$id";

execute($sql);

return 1;

}

function del_spec($id){

$sql="DELETE FROM `spec` where `id`=$id";

execute($sql);

return 1;

}

function del_predm($id){

$sql="DELETE FROM `predm` where `id`=$id";

execute($sql);

return 1;

}

function get_all_kaf_id(){

$sql='SELECT `id` FROM `Departments`';

return (getinfo($sql));

}

function get_all_predm_id(){

$sql='SELECT `id` FROM `predm`';

return (getinfo($sql));

}

function get_all_spec_id(){

$sql='SELECT `id` FROM `spec`';

return (getinfo($sql));

}

function get_all_group_id(){

$sql='SELECT `id` FROM `group`';

return (getinfo($sql));

}

function get_all_stud_id(){

$sql='SELECT `id` FROM `students`';

return (getinfo($sql));

}

function get_all_stepen_id(){

$sql='SELECT `id` FROM `stepeni`';

return (getinfo($sql));

}

function get_predm_ved($predm){

echo "<tr>";

$sql="SELECT `id`, `id_stud`,`id_pred`,`ocenka` FROM `vedomosti` where `id_pred`=$predm";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id_stud")$value=get_fio_student ($value);

if($key=="id_pred")$value= get_predm_name ($value);

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close(); $mysqli->close();

echo "</tr>";

}

function get_fio_student($id){

$sql="SELECT `Surname` FROM `students`";

$x=getinfo($sql);

$fio.=$x[0];

$sql="SELECT `Name` FROM `students`";

$x=getinfo($sql);

$fio.=' '.$x[0];

$sql="SELECT `Patronymic` FROM `students`";

$x=getinfo($sql);

$fio.=" ".$x[0];

return $fio;

}

function get_all_kaf_sel(){

$ids=get_all_kaf_id();

echo "<option disabled>Выберите кафедру</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `Departments` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_stud_sel(){

$ids=get_all_stud_id();

echo "<option disabled>Выберите студента</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `students` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

}; return 1;

}

function get_all_spec_sel_opt($id){

$ids=get_all_spec_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `spec` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_kaf_sel_opt($id){

$ids=get_all_kaf_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `Departments` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_predm_sel_opt($id){

$ids=get_all_predm_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `predm` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

} $mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_name_group_ved($ved){

$sql="SELECT `id_predm` FROM `vedomosti_list` where `id`=$ved";

$predm=getinfo($sql);

$predm=$predm[0];

$sql="SELECT `Name` FROM `predm` WHERE `id`=$predm";

$name_predm=getinfo($sql);

return $name_predm[0];

}

function get_all_lectors_opt($ved){

$sql="SELECT `id_predm` FROM `vedomosti_list` where `id`=$ved";

$predm=getinfo($sql);

$predm=$predm[0];

$sql="SELECT `id` FROM `lectures` WHERE `items_id` LIKE '%$predm%'"; $prep=getinfo($sql);

for($x=0; $x<count($prep); $x++){

$sql="SELECT `Surname`, `Name`, `Patronymic` FROM `lectures` WHERE `id`=".$prep[$x];

$name=getinfo($sql);

$name=$name[0]." ".$name[1]." ".$name[2];

echo "<OPTION value=\"".$prep[$x]."\">$name</OPTION>\n";

}

return 1;

}

function get_all_spec_sel(){

$ids=get_all_spec_id();

echo "<option disabled>Выберите специальность</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `spec` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

} }

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_group_sel(){

$ids=get_all_group_id();

$count=count($ids);

foreach($ids as $id){

$sql="SELECT `name`, `year`, `group_number` from `group` WHERE `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="name")$name=$value;

if($key=="year")$year=$value;

if($key=="group_number")$group_number=$value;

if(($id)&&($name)&&($year)&&($group_number)) {

echo "<OPTION value=\"$id\">$name$year$group_number</OPTION>\n" ;

$id=""; $name="";$year=""; $group_number="";

};

};

};

$result->close();

$mysqli->close();

};

return 1;

};

function get_all_predm_sel(){

$ids=get_all_predm_id();

echo "<option disabled>Выберите факультет</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `predm` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_predm_chk(){

$count= getinfo("SELECT count(`id`) from `predm`");

$count=$count[0];

$sql="SELECT `id`, `Name` from `predm`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if(($id)&&($Name)) {

echo "<label>$Name</label><INPUT TYPE=CHECKBOX NAME=items['$id'] VALUE=\"$id\"> <br />" ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

return 1;

};

function get_all_stepen_sel(){

$ids=get_all_stepen_id();

echo "<option disabled>Выберите степень</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `stepeni` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function add_student($surname, $name, $patronymic, $spec, $N_zach, $year, $number_group){

$sql="INSERT INTO `students`

( `id`,

`Surname`,

`Name`,

`Patronymic`,

`Specialty`,

`Entered`,

`group_id`,

`N_zach`)

VALUES ('',

'$surname',

'$name',

'$patronymic',

'$spec',

'$year',

'$number_group',

'$N_zach'

)";

execute($sql);

return 1;

}

function add_lectures($kaf,$surname, $name, $patronymic, $stepen, $items ){

$sql="INSERT INTO `lectures`

( `id`,

`Surname`,

`Name`,

`Patronymic`,

`Stepen_id`,

`Departmen_id`,

`items_id` )

VALUES ('',

'$surname',

'$name',

'$patronymic',

'$stepen',

'$kaf',

'$items'

)";

execute($sql);

$_POST="";

return 1;

}

function add_department($name,$ZavDepartment){

$sql="INSERT INTO `Departments`

( `id`,

`Name`,

`ZavDepartment`)

VALUES ('',

'$name',

'$ZavDepartment'

)";

execute($sql);

$_POST="";

return 1;

}

function add_groups($name,$year, $group_number){

$sql="INSERT INTO `group`

( `id`,

`name`,

`year`,

`group_number`)

VALUES ('',

'$name',

'$year',

'$group_number'

)";

execute($sql);

$_POST="";

return 1;

}

function add_vedomosti($predm,$stud_id,$ocenka){

$sql="INSERT INTO `vedomosti`

( `id`,

`id_stud`,

`id_pred`,

`ocenka`)

VALUES ('',

'$stud_id',

'$predm',

'$ocenka'

)";

execute($sql);

$_POST="";

return 1;

}

function add_spec($name){

$sql="INSERT INTO `spec`

( `id`,

`Name` )

VALUES ('',

'$name'

)";

execute($sql);

$_POST="";

return 1;

}

function add_predm($name){

$sql="INSERT INTO `predm`

( `id`,

`Name` )

VALUES ('',

'$name'

)";

execute($sql);

$_POST="";

return 1;

}

function edit_department($id, $name,$group_number){

$sql= "UPDATE `rggu`.`group` SET `Name` = '$name', `year` = '$year', `group_number`='$group_number' WHERE `group`.`id` =$id";

execute($sql);

return 1;

};

function edit_group($id, $name,$year, $group_number){

$sql= "UPDATE `rggu`.`group` SET `name` = '$name', `year` = '$year', `group_number`='$group_number' WHERE `group`.`id` =$id";

execute($sql);

return 1;

};

function edit_lectures($id, $kaf,$surname, $name, $patronymic, $stepen, $items )

{

$sql="UPDATE `rggu`.`lectures` SET

`Surname` = '$surname',

`Name` = '$name',

`Patronymic`='$patronymic',

`Stepen_id` ='$stepen',

`Departmen_id` ='$kaf',

`items_id`='$items'

WHERE `lectures`.`id`=$id";

execute($sql);

return 1;

}

function edit_student($id,$surname, $name, $patronymic, $spec, $N_zach, $year, $number_group)

{

$sql="UPDATE `rggu`.`students` SET

`Surname`='$surname',

`Name`='$name',

`Patronymic`='$patronymic',

`Specialty`='$spec',

`Entered`='$year',

`N_zach`='$N_zach',

`group_id`='$number_group'

WHERE `students`.`id`=$id;";

execute($sql);

return 1;

}

function edit_spec($id, $name)

{

$sql= "UPDATE `rggu`.`spec` SET `Name` = '$name' WHERE `spec`.`id` =$id";

execute($sql);

return 1;};

function edit_predm($id, $name){

$sql= "UPDATE `rggu`.`predm` SET `Name` = '$name' WHERE `predm`.`id` =$id";

execute($sql);

return 1;

};

function get_items_name($items){

$item_ar = explode ( "," , $items);

foreach($item_ar as $value){

$items_str.=", ".get_predm_name($value);

}

$items_str=substr($items_str,2,strlen($items_str)-2);

return $items_str;

}

function get_kaf_name($id){

$x=getinfo("SELECT `Name` from `Departments` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_kurse($id){

$x=getinfo("SELECT `Course` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_entered($id){

$x=getinfo("SELECT `Entered` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_N_zach($id){

$x=getinfo("SELECT `N_zach` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_group_name($id){

$x=getinfo("SELECT `name` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_group_year($id){

$x=getinfo("SELECT `year` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_group_number($id){

$x=getinfo("SELECT `group_number` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.