Разработка информационной системы детского сада с использованием клиент-серверной технологии

Системный анализ предметной области. Выбор инструментальных средств для создания программного обеспечения. Программирование на стороне SQL-сервера. Создание клиентского Win-приложения, пользовательский интерфейс. Физическое проектирование базы данных.

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

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

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

Размещено на http://www.allbest.ru

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

(НИУ «БелГУ»)

ФАКУЛЬТЕТ КОМПЬЮТЕРНЫХ НАУК И ТЕЛЕКОММУНИКАЦИЙ

КАФЕДРА МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

Курсовая работа

Разработка информационной системы детского сада с использованием клиент-серверной технологии

студентки дневного отделения 3 курса группы 141004

Лисицыной Юлии Дмитриевны

Научный руководитель:

Сунцова А.И

БЕЛГОРОД 2013

СОДЕРЖАНИЕ

  • 1. ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА
    • 1.1 Проектирование информационного обеспечения
      • 1.1.1 Выбор СУБД
      • 1.1.2 Системный анализ предметной области
      • 1.1.3 Инфологическое и даталогическое проектирование БД
    • 1.2 Проектирование программного обеспечения
      • 1.2.1 Выбор инструментальных средств для создания ПО
      • 1.2.2Определение задач, решаемых информационной системой
  • 2.РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА
    • 2.1Разработка информационного обеспечения
      • 2.1.1 Физическое проектирование БД
      • 2.1.2 Программирование на стороне SQL-сервера
    • 2.2 Разработка программного обеспечения
      • 2.2.1Создание клиентского Win-приложения
      • 2.2.2 Создание клиентского Web-приложения
  • 3.ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА
    • 2.3.1 Интерфейс клиентского Win-приложения
      • 2.3.2 Интерфейс клиентского Web-приложения.
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 1
    • Программирование на стороне сервера
  • ПРИЛОЖЕНИЕ 2
    • Создание клиентского win-приложения
  • ПРИЛОЖЕНИЕ 3
    • Создание клиентского web-приложения
    • ВВЕДЕНИЕ
    • В данной курсовой работе на тему «Разработка информационной системы детского сада использованием клиент-серверной технологии» поставлена цель разработать действующие win-приложение и web-приложение, способные работать с удаленной базой данных, а именно: добавлять, удалять, изменять записи, а также осуществлять их поиск, фильтрацию и сортировку.
    • Для достижения поставленной цели необходимо решить следующие задачи:

проектирование физической и логической моделей удаленной базы данных;

разработка базы данных в СУБД Firebird с помощью утилиты IBExpert;

создание клиентского приложения для Windows с использованием клиент-серверной технологии в инструментальной среде разработки C++ Builder фирмы Borland;

создание клиентского web-приложения с использованием клиент-серверной технологии с помощью языков PHP и HTML.

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

обработке данных. В этом состоит актуальность и значимость данного курсового проекта.

Курсовая работа состоит из следующих частей:

Первый раздел посвящен выбору программного обеспечения и системному анализу предметной области;

Во втором разделе описано проектирование объектов базы данных с помощью утилиты IBExpert, а также проектирование win-приложения (С++) и web-приложения (РНР);

В третьем разделе показан пользовательский интерфейс при работе с win-приложением и web-приложением.

Данная курсовая работа состоит из 46 страниц, 43 рисунков, 1 таблицы, 6 литературных источников и 3 приложений.

программный сервер клиентский приложение

1. ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА

1.1 Проектирование информационного обеспечения

1.1.1 Выбор СУБД

FireВird -- это СУБД, основанная на ядре Borland InterBase. Она предназначена для хранения и обработки больших объемов информации, в условиях работы нескольких пользователей. Для управления базой данных сервер FireВird использует домены, просмотры, хранимые процедуры, триггеры, генераторы, транзакции, а также пользовательские функции. Для работы с FireBird используют утилиту IBExpert, которая позволяет не только полностью управлять структурами баз данных, но также создавать механизмы управления базой данных и отлаживать их[4].

Клиент-серверная СУБД позволяет обмениваться клиенту и серверу минимально необходимыми объёмами информации. При этом основная вычислительная нагрузка ложится на сервер. Клиент может выполнять функции предварительной обработки перед передачей информации серверу, но в основном его функции заключаются в организации доступа пользователя к серверу.

Поэтому для выполнения курсового проекта была выбрана СУБД Firebird[5].

1.1.2 Системный анализ предметной области

В рамках данного курсового проекта спроектирована и создана автоматизированная система с базой данных детского сада. С помощью готовой системы можно будет:

осуществлять добавление, изменение и удаление данных из созданных таблиц;

просматривать данные о детях, группах, сотрудниках, должностях, родителях;

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

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

1.1.3 Инфологическое и даталогическое проектирование БД

На этапе инфологического проектирования была создана модель «сущность-связь» («Entity-Relationship») будущей базы данных, которая показана на следующем рисунке.

Рисунок 1. Логическая модель базы данных

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

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

первичный ключ разделен на части так, чтобы некоторые из ключевых полей зависели только от одной из таких частей, а также созданы новые таблицы для каждой части ключа и перемещены поля, зависящие от них;

осуществлено логическое разделение на родительские и дочерние сущности, а затем определены идентифицирующие связи [3].

Получившаяся физическая модель базы данных изображена на рисунке 2.

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

1.2 Проектирование программного обеспечения

1.2.1 Выбор инструментальных средств для создания ПО

Для создания удаленной базы данных была использована утилита IBExpert - инструмент для администрирования баз данных InterBase и Firebird.

Для создания win-приложения была выбрана система Borland C++ Builder 6.0. Данная система используется программистами для разработки программного обеспечения на языке C++ и поддерживает работу с базами данных под управлением Firebird[2].

Web-приложение создано с использованием языков html и php, сочетание которых в настоящее время поддерживается большинством хостинг-провайдеров. Php является одним из лидеров среди языков программирования и поддерживает клиент-серверную технологию. Html используется повсеместно для создания web-сайтов [1].

Определение задач, решаемых информационной системой

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

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

2. РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА

2.1 Разработка информационного обеспечения

2.1.1 Физическое проектирование БД

Процесс физического проектирования базы данных состоит из нескольких этапов (примеры SQL-скриптов приведены в приложении 1).

Создание и регистрация базы данных показаны на рисунках 3 и 4.

Рисунок 3. Создание БД

Рисунок 4. Регистрация БД

Создание доменов базы данных. Все типы доменов базы данных показаны в таблице 1.

Таблица 1

Домены базы данных

Имя домена

Тип

Not Null

Default

Check

D_DAT

DATE

yes

no

D_ID

INTEGER

yes

>0

D_TEL

VARCHAR(11)

yes

no

D_ADR

VARCHAR(30)

yes

no

D_FIO

VARCHAR(20)

yes

no

D_NUM

SMALLINT

yes

>0

На рисунке 5 показан список используемых доменов.

Рисунок 5. Созданные домены

Создание таблиц БД и ограничений (первичных и внешних ключей) показано на рисунках 6,7 и 8 (примеры SQL-скриптов показаны в приложении 1).

Рисунок 6. Создание таблицы «Дети» в конструкторе

Рисунок 7. Первичный ключ таблицы «Дети»

Рисунок 8. Внешний ключ таблицы «Дети»

Просмотр дизайна полученной базы данных.

Рисунок 9. Дизайнер базы данных

2.1.2 Программирование на стороне SQL-сервера

Процесс программирования на стороне SQL-сервера также состоит из нескольких этапов (примеры SQL-скриптов показаны в приложении 2).

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

Рисунок 10. Результат работы представления

Создание хранимых процедур. В базе данных были созданы выполняемые процедуры (например, для добавления, удаления, изменения записей в таблицах) и процедуры на выборку (например, показывающая детей по номеру группы, в которой они учатся). На рисунке 11 показано создание хранимой процедуры для добавления записи в таблицу «Группы».

Рисунок 11. Процедура для добавления записи в таблицу

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

Рисунок 12. Создание индекса для таблицы «Дети»

Создание генераторов для автоматического заполнения автоинкрементных полей всех таблиц базы данных показано на рисунке 13.

Рисунок 13. Созданные генераторы

Создание триггеров для работы генераторов и реализации бизнес-логики работы приложений показано на рисунке 14.

Рисунок 14. Создание триггера

Создание исключений. Их реализация показана в описании создания хранимых процедур. Список исключений показан на рисунке 15.

Рисунок 15. Список созданных исключений

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

Рисунок 16. Список объектов базы данных

2.2 Разработка программного обеспечения

2.2.1 Создание клиентского Win-приложения

В приложении была использована технология доступа к данным InterBase Express (скрипт на С++ показан в приложении 2). Модульная структура win-приложения представлена на рисунке 17.

Рисунок 17. Модульная структура приложения

Далее нужно настроить компонент IBDatabase, как изображено на рисунке 18.

Рисунок 18. Настройка подключения

На рисунке 19 показана главная форма win-приложения.

Рисунок 19. Главная форма приложения

Аналогично были созданы остальные вкладки на форме.

2.2.2 Создание клиентского Web-приложения

Клиентское web-приложение имеет структуру, представленную на рисунке 20.

Рисунок 20. Модульная схема web-приложения

На главной странице расположены ссылки на страницы с таблицами из базы данных (пример - chil.php), для которых можно осуществлять сортировку (на той же странице), фильтрацию (включая фильтрацию по диапазону, пример - chil_f.php) и поиск данных (пример - chil_s.php), а также осуществлять добавление (пример - chil_a.php), изменение (пример - chil_u.php) и удаление (пример - chil_d.php) записей базы данных.

Рисунок 21. Главная страница web-приложения

3. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЕТСКОГО САДА

3.1 ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС

3.1.1 Интерфейс клиентского Win-приложения

Тестирование работы добавления записей из клиентского win-приложения показано на следующих рисунках 22 и 23.

Рисунок 22. Добавление записи

Рисунок 23. Результат добавления

Далее показано тестирование изменения записи на рисунках 24 и 25.

Рисунок 24. Изменение данных о поставщике

Рисунок 25. Результат изменения

На следующих двух рисунках 26 и 27 показана работа удаления информации из таблицы.

Рисунок 26. Удаление строки

Рисунок 27. Результат удаления

Тестирование сортировки изображено на рисунке 28.

Рисунок 28. Сортировка по названию группы

На рисунке 29 показана работа фильтрации.

Рисунок 29. Фильтрация по номеру комнаты

Рисунок 30 отражает работу поиска данных в таблице.

Рисунок 30. Поиск по названию группы

3.2.2 Интерфейс клиентского Web-приложения

Тестирование работы добавления информации отображено на рисунке 31.

Рисунок 31. Добавление записи

Рисунок 32. Результат добавления

Далее на рисунке 33 показано тестирование изменения записи.

Рисунок 33. Изменение данных

Рисунок 34. Результат изменения

На следующих двух рисунках 35 и 36 показана работа удаления данных.

Рисунок 35. Удаление данных

Рисунок 36. Результат удаления

Тестирование сортировки изображено на рисунке 37.

Рисунок 37. Сортировка по названию группы

На рисунке 38 и 39 показана работа фильтрации.

Рисунок 38. Параметры фильтрации

Рисунок 39. Результат фильтрации

На рисунках 40 и 41 показана работа фильтрации по диапазону в таблице «Родители».

Рисунок 40. Параметры фильтрации

Рисунок 41. Результат фильтрации

Рисунки 42 и 43 отражают работу поиска данных в таблице «Группы».

Рисунок 42. Поиск по названию

Рисунок 43. Результат поиска

ЗАКЛЮЧЕНИЕ

В данной курсовой работе была осуществлена задача по проектированию и созданию удаленной базы данных, а также web и win-приложений для ее администрирования с использованием клиент-серверной технологии. Программирование на стороне сервера было осуществлено в СУБД FireBird 2.1 с помощью утилиты IBExpert, а клиентская часть приложения - в C++Builder с помощью технологии доступа к данным InterBaseExpress (IBX) и на языках php и html.

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

В ходе выполнения курсовой работы были приобретены практические и теоретические знания и навыки в области создания удаленных баз данных, а также создания win-приложений на web-приложений. Таким образом, задачи, поставленные в начале курсовой работы, были выполнены, а цель - достигнута.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Голуб А. Правила программирования на С и С++. - Москва 2001 г. - 241с.

Пахомов Б.И. С/С++ и Borland C++ Builder для начинающих. - СПб.: БХВ-Петербург, 2005. - 640 с.: ил.

Селко Дж. SQL для профессионалов Программирование. Второе издание. - Издательство «Лори», 2004. - 442 с.: ил.

www.php.ru

www.ibexpert.com

ПРИЛОЖЕНИЕ 1

Программирование на стороне сервера

Создание домена:

CREATE DOMAIN D_DAT AS

DATE

NOT NULL;

Создание таблицы:

CREATE TABLE CHILDREN (

ID_CHIL D_ID,

SURNAME_C D_FIO,

NAME_C D_FIO,

LNAME_C D_FIO,

GOD_ROZD D_DAT,

COUNT_LET D_NUM,

ID_GROUP D_ID

);

ALTER TABLE CHILDREN ADD CONSTRAINT PK_CHILDREN PRIMARY KEY (ID_CHIL);

ALTER TABLE CHILDREN ADD CONSTRAINT FK_CHILDREN_1 FOREIGN KEY (ID_GROUP) REFERENCES GROUPS (ID_GROUP) ON DELETE CASCADE ON UPDATE CASCADE;

Создание представления:

CREATE VIEW V_SOTR_GROUP(

GRYPA,

SOTRUDNIK,

DOLZNOST)

AS

select gr.name_gr as grypa, (st.surname_s||' '||st.name_s||' '||st.lname_s) as sotrudnik, dl.name_dolz as dolznost

from groups gr, sotrudniki st, dolznosti dl, sotr_group sg

where gr.id_group=sg.id_group AND sg.id_sotr=st.id_sotr AND st.id_dolz=dl.id_dolz

order by grypa;

Создание выполняемой хранимой процедуры:

create or alter procedure ADD_GR (

NAME_GRYPA varchar(20),

NUM_ROOM smallint)

as

begin

if(:name_grypa='' or :name_grypa is null) then exception null_except;

else if(:num_room<=0 or :num_room is null) then exception number_except;

begin

INSERT INTO groups (groups.name_gr, groups.num_room)

VALUES (:name_grypa, :num_room);

end

end

Создание хранимой процедуры на выборку:

create or alter procedure CHILD_GRYPA (

FAMILIA varchar(20))

returns (

GRYPA varchar(20),

NUM_ROOM smallint)

as

begin

for select distinct groups.name_gr, groups.num_room

from groups, children

WHERE children.surname_c=:familia AND children.id_group=groups.id_group

into :grypa, :num_room

do

suspend;

end

Создание триггера:

CREATE OR ALTER TRIGGER GROUPS_BI0 FOR GROUPS

ACTIVE BEFORE INSERT POSITION 0

AS

begin

if (new.id_group is null) then

new.id_group=gen_id(g_gr, 1);

end

Создание генератора:

CREATE generator G_CH;

ALTER generator G_CH RESTART WITH 1;

Создание исключения:

CREATE EXCEPTION DUBL_EXCEPT 'Дублирующая запись';

Создание индекса:

CREATE INDEX CH_FAM_IDX1 ON CHILDREN (SURNAME_C);

ПРИЛОЖЕНИЕ 2

Создание клиентского win-приложения

Код для добавления:

void __fastcall TForm1::Button3Click(TObject *Sender)

{

DataModule2->IBStoredProc1->StoredProcName="ADD_GR";

DataModule2->IBStoredProc1->ParamByName("NAME_GRYPA")->AsString=Edit3->Text;

DataModule2->IBStoredProc1->ParamByName("NUM_ROOM")->AsString=Edit4->Text;

DataModule2->IBStoredProc1->Prepare();

DataModule2->IBStoredProc1->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBQuery1->Open();

DataModule2->IBQuery2->Open();

DataModule2->IBQuery3->Open();

Edit3->Text="";

Edit4->Text="";

}

Код для изменения:

void __fastcall TForm1::Button4Click(TObject *Sender)

{

DataModule2->IBStoredProc1->StoredProcName="UPD_GR";

DataModule2->IBStoredProc1->ParamByName("ID")->AsString=Edit7->Text;

DataModule2->IBStoredProc1->ParamByName("GRYPA")->AsString=Edit5->Text;

DataModule2->IBStoredProc1->ParamByName("NUM_ROOM")->AsString=Edit6->Text;

DataModule2->IBStoredProc1->Prepare();

DataModule2->IBStoredProc1->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBQuery1->Open();

DataModule2->IBQuery2->Open();

DataModule2->IBQuery3->Open();

Edit6->Text="";

Edit5->Text="";

Edit7->Text="";

}

Код для удаления:

void __fastcall TForm1::Button5Click(TObject *Sender)

{

DataModule2->IBStoredProc1->StoredProcName="DEL_GR";

DataModule2->IBStoredProc1->ParamByName("ID")->AsString=Edit8->Text;

DataModule2->IBStoredProc1->Prepare();

DataModule2->IBStoredProc1->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBQuery1->Open();

DataModule2->IBQuery2->Open();

DataModule2->IBQuery3->Open();

Edit8->Text="";

}

Поиск помощью хранимой процедуры:

void __fastcall TForm1::Edit2Change(TObject *Sender)

{

if(RadioButton6->Checked)

{

DataModule2->IBQuery1->Close();

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from P_GROUP_NAME(:GR)");

DataModule2->IBQuery1->ParamByName("GR")->AsString=Edit2->Text;

DataModule2->IBQuery1->Open();

}

if(RadioButton7->Checked)

{

DataModule2->IBQuery1->Close();

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from P_GROUP_ROOM(:ROM)");

DataModule2->IBQuery1->ParamByName("ROM")->AsString=Edit2->Text;

DataModule2->IBQuery1->Open();

}}

Фильтрация с помощью хранимой процедуры:

void __fastcall TForm1::Edit1Change(TObject *Sender)

{

if(RadioButton4->Checked)

{

DataModule2->IBQuery1->Close();

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from F_GROUP_NAME(:GR)");

DataModule2->IBQuery1->ParamByName("GR")->AsString=Edit1->Text;

DataModule2->IBQuery1->Open();

}

if(RadioButton5->Checked)

{

DataModule2->IBQuery1->Close();

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from F_GROUP_ROOM(:ROM)");

DataModule2->IBQuery1->ParamByName("ROM")->AsString=Edit1->Text;

DataModule2->IBQuery1->Open();

}}

Сортировка с помощью просмотра по номеру дома:

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

{

DataModule2->IBQuery1->Active=false;

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from S_GROUP_ID");

DataModule2->IBQuery1->Active=true;

Form1->DBGrid1->DataSource=DataModule2->DataSource2;

}

//----------------------------------------------------------------------

void __fastcall TForm1::RadioButton2Click(TObject *Sender)

{

DataModule2->IBQuery1->Active=false;

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from S_GROUP_NAME");

DataModule2->IBQuery1->Active=true;

Form1->DBGrid1->DataSource=DataModule2->DataSource2;

}

//----------------------------------------------------------------------

void __fastcall TForm1::RadioButton3Click(TObject *Sender)

{

DataModule2->IBQuery1->Active=false;

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from S_GROUP_ROOM");

DataModule2->IBQuery1->Active=true;

Form1->DBGrid1->DataSource=DataModule2->DataSource2;}

ПРИЛОЖЕНИЕ 3

Создание клиентского web-приложения

Код главной страницы:

<html>

<head>

<meta http-equiv="content-type" content="text/html">

<title>Главная</title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body onLoad="MM_preloadImages('images/h_butt1.jpg','images/2h_butt2.jpg','images/3h_butt3.jpg','images/4h_butt4.jpg','images/5h_butt5.jpg','images/6h_butt6.jpg')">

<table align="center" style="width:726px; height:100%;">

<tr>

<td style="width:100%; height:27px;"> <img src="images/spacer.gif" alt="" width="1" height="1"><br>

</td>

</tr>

<tr>

<td style="width:100%; height:137px;">

<a href="index.html">

<img src="images/h_butt1.jpg" alt="Домашняя страница" name="rov1" width="118" height="137" border="0"></a>

<a href="gr.php" >

<img src="images/h_butt2.jpg" alt="Таблица 1" name="rov2" width="118" height="137" border="0"></a>

<a href="chil.php" >

<img src="images/h_butt3.jpg" alt=" " name="rov3" width="118" height="137" border="0"></a>

<a href="par.php">

<img src="images/h_butt4.jpg" alt=" " name="rov4" width="118" height="137" border="0"></a>

<a href="sotr.php" >

<img src="images/h_butt5.jpg" alt=" " name="rov5" width="118" height="137" border="0"></a>

<a href="dolz.php">

<img src="images/h_butt6.jpg" alt=" " name="rov6" width="115" height="137" border="0"></a>

<br>

</td></tr><tr>

<td style="width:100%; height:16px;"> <img src="images/spacer.gif" alt="" width="1" height="1"><br>

</td></tr><tr>

<td style="width:100%; height:6px;"> <img src="images/spacer.gif" alt="" width="1" height="1"><br>

</td></tr><tr>

<td style="width:100%; height:89px;">

<table style="width:100%; height:100%;">

<tr>

<br><h1>Главная</h1><br>

<p>Наш детский сад не зря зовется садом:

<br>Здесь дети подрастают как цветы.

<br>Чтоб этот сад был год от года краше

<br>Мы не жалеем Света, Тепла и Доброты!

<p>На нашем сайте Вы можете:

<br>1) просматривать данные о детях, группах, родителях, сотрудниках, должностях сотрудников,

<br>2) добавлять, изменять и удалять эти данные,

<br>3) осуществлять сортировку, фильтрацию и поиск информации по всей базе данных детского сада.

<td style="width:705px; height:100%; background:url(images/f_back1.gif) repeat-x top;">

<table style="width:100%; height:100%; background:url(images/f_back1.gif) repeat-x bottom;">

<tr><td style="width:100%; height:100%; background:url(images/f_back1.gif) repeat-y left;">

<table style="width:100%; height:100%; background:url(images/f_back1.gif) repeat-y right">

<tr><td style="width:100%; height:100%; background:url(images/ltc.gif) no-repeat left top;"><table style="width:100%; height:100%; background:url(images/rtc.gif) no-repeat right top"><tr><td style="width:100%; height:100%; background:url(images/lbc.gif) no-repeat left bottom;"><table style="width:100%; height:100%; background:url(images/rbc.gif) no-repeat right bottom;">

</table></td></tr>

</table></td></tr></table></td></tr></table></td>

<td style="width:21px; height:100%;"> </td>

</tr></table></td></tr><tr>

<td style="width:100%; height:100%;"> <br style="line-height:24px;">

</td></tr>

</table>

</body>

</html>

Код для подключения к БД (config.php):

<?php

$host='172.23.64.64:/home/ftp/10/1410179/kinder/G141004_LISIZINA.FDB';

$usname='sysdba';

$pswrd='masterkey';

$db=ibase_pconnect($host, $usname, $pswrd);

if(!$db)

{

echo 'Ошибка соединения c базой данных';

exit;

}

?>

Код для просмотра, сортировки, фильтрации и поиска в таблице:

<form action="gr.php" method="post">

<p >Сортировать таблицу по:

<SELECT name="sort">

<OPTION value=1>номеру

<OPTION value=2>названию группы

<OPTION value=3>номеру комнаты

</SELECT>

<p align='left'><input type="submit" value="Сортировать"></p>

</form>

<form action="gr.php" method="post">

<p>Фильтровать по:

<SELECT name="filtr1">

<OPTION value=1>названию группы

<OPTION value=2>номеру комнаты

</SELECT>

<p align='left'>Параметр фильтрации:<input type="text" name="filtr" size="20"></p>

<p align='left'><input type="submit" value="Фильтровать"> <input type="submit" value="Сброс"><br><br>

</form>

<hr>

<form action="gr.php" method="post">

<p>Поиск по:

<SELECT name="search1">

<OPTION value=1>названию группы

<OPTION value=2>номеру комнаты

</SELECT>

<p align='left'>Параметр поиска:<input type="text" name="search" size="20"></p>

<p align='left'><input type="submit" value="Поиск"> <input type="submit" value="Сброc">

</form>

<?php

include_once('config.php');

$sort=$_POST['sort'];

$filtr1=$_POST['filtr1'];

$search1=$_POST['search1'];

$filtr=$_POST['filtr'];

$search=$_POST['search'];

if ($sort)

{

switch($sort)

{

case 1:

{

$query="select * from S_GROUP_ID";

break;

}

case 2:

{

$query="select * from S_GROUP_NAME";

break;

}

case 3:

{

$query="select * from S_GROUP_ROOM";

break;

}

}

}

else if ($filtr&&$filtr1)

{

switch($filtr1)

{

case 1:

{

$query="select * from F_GROUP_NAME('".$filtr."')";

break;

}

case 2:

{

$query="select * from F_GROUP_ROOM('".$filtr."')";

break;

}

}

}

elseif ($search&&$search1)

{

switch($search1)

{

case 1:

{

$query="select * from P_GROUP_NAME('".$search."')";

break;

}

case 2:

{

$query="select * from P_GROUP_ROOM('".$search."')";

break;

}

}

}

else

{$query="select * from GROUPS";

}

$result=ibase_query($query);

echo '<table border=1 width=100% height=100% >';

echo '<tr><td class="tab_h" width=20%><i><b>№ группы</b></i></td>'.

'<td class="tab_h"><i><b>Название группы</b></i></td>'.

'<td class="tab_h"><i><b>Номер комнаты</b></i></td>'.

'<td class="tab_h" width=25%><i><b>Действия с записью</b></i></td>'.

'</tr>';

while($row=ibase_fetch_row($result))

{

echo "<tr><td class='tab_st_c'>$row[0]</td>

<td class='tab_st'><a href='child_group.php?NAM=$row[1]'>$row[1]</a></td>

<td class='tab_st_c'>$row[2]</td>

<td class='tab_st_c'><a href='gr_u.php?ID=$row[0]'>Изменить</a><br><a href='gr_d.php?ID=$row[0]'>Удалить</a></td>

</tr>";

}

echo "</table>";

ibase_free_result($result);

?>

Код для добавления данных:

<form action="gr_a.php" method="post">

Название группы&nbsp;&nbsp;<input type="text" name="NAME" size="20"> <br><br>

Номер комнаты&nbsp;&nbsp;<input type="text" name="ROOM" size="5"> <br><br>

<input type="submit" value="Добавить"><br>

</p>

</form>

<h3 align=left>Результат:&nbsp;</h3>

<?php

$NAME=$_POST['NAME'];

$ROOM=$_POST['ROOM'];

if (!$NAME||!$ROOM)

{

echo "<p>Необходимо заполнить поля для добавления!</p><br>";

}

else

{

include_once('config.php');

$query="EXECUTE PROCEDURE ADD_GR('".$NAME."','".$ROOM."')";

$it=ibase_trans();

$result=ibase_query($query);

$ic=ibase_commit();

if ($result)

echo "<p>Запись добавлена!<br><br>";

else echo "<p>Запись не добавлена!</p>";

echo "<a href='gr.php'>Вернуться к просмотру</a>";

}

?>

Код для изменения записи:

<?php

$ID=$_GET['ID'];

echo '<form action="gr_u.php" method="post">

Номер группы&nbsp;&nbsp;<input type="text" size="5" name="IDD" value='.$ID.'> <br><br>

Название группы&nbsp;&nbsp;<input type="text" name="NAME" size="20"> <br><br>

Номер комнаты&nbsp;&nbsp;<input type="text" name="ROOM" size="5"> <br>

<br>

<input type="submit" value="Изменить"><br>

</p>

</form>';

?>

<h3 align=left>Результат:&nbsp;</h3>

<?php

$IDD=$_POST['IDD'];

$NAME=$_POST['NAME'];

$ROOM=$_POST['ROOM'];

if (!$IDD||!$NAME||!$ROOM)

{

echo "<p>Необходимо заполнить поля для изменения!</p><br>";

}

else

{

include_once('config.php');

$query="EXECUTE PROCEDURE UPD_GR('".$IDD."','".$NAME."','".$ROOM."')";

$it=ibase_trans();

$result=ibase_query($query);

$ic=ibase_commit();

if ($result)

echo "<p>Запись изменена!<br><br>";

else echo "<p>Запись не изменена!</p><br><br>";

echo "<a href='gr.php'>Вернуться к просмотру</a>";

}

?>

Код для удаления:

<?php

$ID=$_GET['ID'];

include_once('config.php');

$query="EXECUTE PROCEDURE DEL_GR('".$ID."')";

$it=ibase_trans();

echo '<br>';

$result=ibase_query($query);

$ic=ibase_commit();

if ($result)

echo "<p>Запись удалена!<br><br>";

else echo "<p>Запись не удалена!</p>";

echo "<a href='gr.php'>Вернуться к просмотру</a>";

?>

Код фильтрации по диапазону:

<form action="par.php" method="post">

<p>Фильтровать фамилии по диапазону:

<p align='left'>от:<input type="text" name="f" size="5"> &nbsp;&nbsp;&nbsp; до:<input type="text" name="f1" size="5"></p>

<p align='left'><input type="submit" value="Фильтровать"> <input type="submit" value="Сброс"><br><br>

</form>

<?php

include_once('config.php');

$sort=$_POST['sort'];

$filtr1=$_POST['filtr1'];

$search1=$_POST['search1'];

$filtr=$_POST['filtr'];

$search=$_POST['search'];

$f=$_POST['f'];

$f1=$_POST['f1'];

switch($filtr1)

{

case 1:

{

$query="select * from F_PARENT_SURN('".$filtr."')";

break;

}

case 2:

{

$query="select * from F_PARENT_NAME('".$filtr."')";

break;

}

case 3:

{

$query="select * from F_PARENT_OTC('".$filtr."')";

break;

}

case 4:

{

$query="select * from F_PARENT_TEL('".$filtr."')";

break;

} } }

?>


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

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