Все файлы приложения размещаются в корневом каталоге сайта. Проект содержит несколько подкаталогов:
InternetTechnology, хранит файлы подразделов дисциплин;
images, хранит все файлы изображений, используемые в приложении;
smiles, хранит смайлики для чата и гостевой книги.
В корневом каталоге хранятся файлы, описанные в таблице 2.13.
Таблица 2.13- Описание файловой структуры приложения
№ п/п | Название файла | Назначение файла |
1 | Admchat. php | Страница администрирования чата |
2 | Admexam. php | Страница администрирования экзаменатора. Удаление предметов или вопросов |
3 | Adminguest. php | Страница администрирования гостевой книги |
4 | AdminInternetTechnology. php | Главная страница администратора. Связана со страницами администрирования: admchat. php, admexam. php, adminguest. php, input. php, students. php |
5 | Adminpass. php | Вход на страницу администратора |
6 | All. php | Файл связи со всеми файлами функций |
7 | BaseFunctions. php | Основные функции |
8 | Chat. php | Страница чата |
9 | Exam. php | Страница тестирования |
10 | FuncChat. php | Функции для страницы чата |
11 | FuncExam. php | Функции для страницы тестирования |
12 | FuncGuest. php | Функции для гостевой книги |
13 | Gb. php | Модуль гостевой книги |
14 | Input. php | Страница ввода новых дисциплин и вопросов. Доступна только администратору |
15 | InternetTechnology. php | Главная страница модуля Интернет технологии |
16 | LeftAdmin. php | Левая часть страницы администрирования |
17 | Login. php | Модуль входа в систему по Нику и паролю |
18 | Postmodule. php | Модуль, использующийся в гостевой книге и чате для посылки сообщений |
19 | RegisterUser. php | Модуль первоначальной регистрации |
20 | Rtf1. php | Модуль производящий сертификат |
21 | Rtfs. php | Модуль производящий список студентов прошедших тестирование |
22 | Score. php | Станица результатов тестирования |
23 | StartSession. php | Модуль обработки результатов регистрации |
24 | Store. php | Модуль записи вопросов тестирования |
25 | Students. php | Страница результатов тестирования. Доступна только администратору |
26 | Shop. php | Модуль интернет - магазина |
27 | Shopping. php | Модуль регистрации заказчика |
28 | Rtfshop. php | Модуль печати заказов в Word |
29 | Admshop. php | Администрирование интернет - магазина |
30 | Funcshop. php | Функции интернет - магазина |
31 | Styles. css | Подключаемый модуль таблицы стилей |
Для входа в систему MySQL в интерфейс командной строки на своей машине и наберите следующее:
> mysql. exe - h localhost - u root
Командная подсказка может выглядеть по-разному, в зависимости от используемых операционной системы и командной оболочки.
Команда mysql запускает монитор MySQL. Это клиент командной строки, который выполняет соединение с сервером MySQL.
Ключ - h используется для обозначения хоста, к которому осуществляется подключение - это компьютер с запущенным сервером MySQL. При вводе этой команды на той же машине, на которой находится сервер MySQL, применять этот ключ, равно как и параметр hostname, вовсе не обязательно. Если на другой, то параметр hostname следует заменить именем машины, на которой выполняется сервер MySQL.
Ключ - u используется для указания имени пользователя, под которым требуется осуществить соединение.
(Если этого не произошло, убедитесь в том, что MySQL-сервер запущен и где-то в. вашем пути присутствует команда mysql) Необходимо ввести пароль.
Система баз данных MySQL может поддерживать множество различных баз данных. Обычно на одно приложение будет существовать одна база данных.
Для создания базы данных (itn) используют подключаемый файл “create_itn. sql”. Для этого нужно ввести команду:
Mysql>\. create_itn. sql f: \create_itn. sql
как показано на рисунке 2.14
Рисунок 2.14 - создание таблиц с помощью sql-файла
где f: \create_itn. sql - имя и путь к файлу.
Текст файла - “create_itn. sql “ приведен ниже.
create database itn; // Создать базу данных под названием “itn”
use itn; // использовать базу данных ”itn”
create table chatmessages // Создать таблицу “chatmessages”
( // Сообщения чата
idchmes int unsigned not null auto_increment primary key,
idstudc int not null, // id студента
message char(150) not null, // сообщение чата
ip char(15), // IP - адрес
time datetime not null // дата записи сообщения
);
create table guests // Создать таблицу “guests”
( // гостевая книга
idguest int unsigned not null auto_increment primary key,
idstudg int not null, // id студента
message char(150) not null, // сообщение
ip char(15), // IP - адрес
page char(30) not null, // страница гостевой книги
time datetime not null // дата записи
);
create table subjects // Создать таблицу “subjects”
( // Предметы для тестирования
idsub int unsigned not null auto_increment primary key,
subject char(30) not null // предмет
);
create table questions // Создать таблицу “questions”
( // вопросы для тестирования
idques int unsigned not null auto_increment primary key,
idsubq int not null, // родительский предмет
quesmes char(150) not null // вопрос
);
create table answers // Создать таблицу “answers”
( // ответы для тестирования
idans int unsigned not null auto_increment primary key,
parent int not null, // id - вопроса
ansmes char(150) not null, // ответ
rightanswer int default 0 not null // правильный ответ = 1
);
create table students // Создать таблицу “students”
( // Студенты прошедшие тест
idstud int not null primary key, // шифр
name char(20) not null, // имя
secondname char(20) not null, // фамилия
faculty char(20) not null, // факультет
email char(20) not null, // e-mail
login char(20) not null, // login входа в систему
password char(20) not null, // пароль
lastdate datetime not null // Дата последнего входа в систему
};
create table results
{
idres int not null auto_increment primary key,
idstudr int not null, // id - студента
idsubr int not null, // id - предмета
posted datetime not null, // дата сдачи
score int not null, // результат
count tinyint(4) not null, // IP - количество попыток
);
create table ips // Создать таблицу “ips”
( // запрещенных IP - адресов
idip int unsigned not null auto_increment primary key,
ip char(15) not null, // IP - адрес
sub char(20) not null // станица(гостевая книга или чат)
);
create table bals // Создать таблицу “bals”
( // баллы для тестирования
bal int not null, // бал
percent int not null // проценты
);
create table cd
(
idc int unsigned not null auto_increment primary key,
title char(50) not null,
description char(150),
price float not null
);
create table zakaz
(
idz int unsigned not null auto_increment primary key,
idclienta int not null,
idcd int not null,
count tinyint default 0 not null,
recdate datetime not null,
flag_done enum('y', 'n') DEFAULT 'n' NOT NULL
);
create table shopclients
(
idclient int unsigned not null auto_increment primary key,
name char(10) not null,
sname char(15) not null,
email char(30) not null,
address text not null,
fhone char(15),
lastdate datetime not null
);
grant select, insert, update, delete // определение прав пользователя
on itn. *
to itn@localhost identified by 'password';
Таблица 2.14 - Используемые типы данных
№ п/п | Тип данных | Описание |
1 | int | Целое число. В MySQL тип данных int может быть со знаком или без знака |
2 | tinyint | Очень маленькие целые числа |
3 | char(длина) | Символьная величина фиксированной длины. Поля типа char не могут содержать строки длины большей, чем указанное значение. Поля меньшей длины дополняются пробелами |
4 | date | Стандартное значение даты. Формат хранения даты по умолчанию ‘yyyy-mm-dd’ |
5 | text | Символьная величина переменной длины |
6 | enum(‘знач1’, …, ‘значN’) | Перечисляемый тип |
Что означают другие ключевые слова
NOT NULL означает, что все строки таблицы должны иметь значение в этом атрибуте. Если NOT NULL не указано, поле может быть пустым (NULL).
AUTO_INCREMENT - специальная возможность MySQL, которую можно задействовать в числовых столбцах. Если при вставке строк в таблицу оставлять такое поле пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это значение будет на единицу больше максимального значения, уже существующего в столбце. В каждой таблице может быть не больше одного такого поля. Столбцы с AUTO_INCREMENT должны быть проиндексированными.