Skip to content
Snippets Groups Projects
Commit 803efc7d authored by PavelBegunkov's avatar PavelBegunkov
Browse files

Исправления

parent 09a9f40d
Branches
Tags
No related merge requests found
......@@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1:3306
-- Время создания: Июл 28 2014 г., 19:24
-- Время создания: Июл 29 2014 г., 13:54
-- Версия сервера: 5.5.37-log
-- Версия PHP: 5.3.28
......@@ -395,6 +395,21 @@ INSERT INTO `rating_table` (`ID`, `StudentID`, `TeacherID`, `SubmoduleID`, `Rate
-- --------------------------------------------------------
--
-- Структура таблицы `requests`
--
CREATE TABLE IF NOT EXISTS `requests` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`AccountID` int(11) DEFAULT NULL,
`Text` text NOT NULL,
`Date` date NOT NULL,
PRIMARY KEY (`ID`),
KEY `AccountID` (`AccountID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Структура таблицы `schedule`
--
......@@ -676,6 +691,12 @@ ALTER TABLE `rating_table`
ADD CONSTRAINT `rating_table_ibfk_3` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`),
ADD CONSTRAINT `rating_table_ibfk_4` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`);
--
-- Ограничения внешнего ключа таблицы `requests`
--
ALTER TABLE `requests`
ADD CONSTRAINT `requests_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL;
--
-- Ограничения внешнего ключа таблицы `schedule`
--
......
......@@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1:3306
-- Время создания: Июл 28 2014 г., 19:27
-- Время создания: Июл 29 2014 г., 13:55
-- Версия сервера: 5.5.37-log
-- Версия PHP: 5.3.28
......@@ -254,6 +254,21 @@ CREATE TABLE IF NOT EXISTS `rating_table` (
-- --------------------------------------------------------
--
-- Структура таблицы `requests`
--
CREATE TABLE IF NOT EXISTS `requests` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`AccountID` int(11) DEFAULT NULL,
`Text` text NOT NULL,
`Date` date NOT NULL,
PRIMARY KEY (`ID`),
KEY `AccountID` (`AccountID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `schedule`
--
......@@ -465,6 +480,12 @@ ALTER TABLE `rating_table`
ADD CONSTRAINT `rating_table_ibfk_3` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`),
ADD CONSTRAINT `rating_table_ibfk_4` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`);
--
-- Ограничения внешнего ключа таблицы `requests`
--
ALTER TABLE `requests`
ADD CONSTRAINT `requests_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL;
--
-- Ограничения внешнего ключа таблицы `schedule`
--
......
......@@ -181,6 +181,9 @@ BEGIN
DECLARE checker INT;
DECLARE UserID INT;
SELECT COUNT(accounts.ID) INTO checker FROM accounts WHERE accounts.ActivationCode = Code;
IF ( Password IS NULL ) THEN
return -2;
END IF;
IF checker = 1 THEN
SELECT accounts.ID
......@@ -248,7 +251,7 @@ BEGIN
( study_groups.FacultyID = FacultyID )
LIMIT 1;
IF StudyGroupID > -1 THEN
IF ( (StudyGroupID > -1) AND ( Code IS NOT NULL ) ) THEN
INSERT INTO `accounts` ( accounts.Login , accounts.Password , accounts.`E-Mail`, accounts.Type, accounts.ActivationCode )
VALUES ( NULL, NULL, NULL, 'student', Code);
......@@ -415,13 +418,16 @@ BEGIN
SELECT DISTINCT disciplines.ID AS 'DisciplineID',
disciplines.Name AS 'DisciplineName',
disciplines.ExamType AS 'DisciplineType',
subjects.ID AS 'SubjectID',
subjects.Name AS 'SubjectName',
disciplines_teachers.ID AS 'DisciplineTeacherID',
study_groups.ID AS 'StudyGroupID',
study_groups.Group AS 'StudyGroupNum',
study_groups.Grade AS 'StudyGroupGrade',
study_groups.Name AS 'StudyGroupName'
study_groups.Name AS 'StudyGroupName'
FROM `disciplines_teachers`
INNER JOIN `disciplines` ON disciplines.ID = disciplines_teachers.DisciplineID
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
CROSS JOIN `lessons` ON lessons.DisciplineTeacherID = disciplines_teachers.ID
INNER JOIN `attending_groups` ON attending_groups.ID = lessons.AttendingGroupID
CROSS JOIN `attending_groups_bases` ON attending_groups_bases.AttendingGroupID = attending_groups.ID
......@@ -598,8 +604,8 @@ END //
DROP FUNCTION IF EXISTS Internal_CheckeOccurrence ; //
CREATE FUNCTION `Internal_CheckeOccurrence` ( `StudentID` INT,
DROP FUNCTION IF EXISTS InternalOccurrenceChecker ; //
CREATE FUNCTION `InternalOccurrenceChecker` ( `StudentID` INT,
`AG_ID` INT )
RETURNS boolean
NO SQL
......@@ -651,7 +657,7 @@ BEGIN
INNER JOIN `disciplines` ON disciplines.ID = disciplines_teachers.DisciplineID
CROSS JOIN `lessons` ON lessons.DisciplineTeacherID = disciplines_teachers.ID
INNER JOIN `attending_groups` ON attending_groups.ID = lessons.AttendingGroupID
CROSS JOIN `students` ON Internal_CheckeOccurrence(students.ID, attending_groups.ID) = TRUE
CROSS JOIN `students` ON InternalOccurrenceChecker(students.ID, attending_groups.ID) = TRUE
INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID
WHERE disciplines_teachers.TeacherID = TeacherID AND
disciplines_teachers.DisciplineID = DisciplineID
......@@ -878,6 +884,56 @@ BEGIN
END //
-- ====== Requests ======= --
DROP PROCEDURE IF EXISTS GetLastRequests; //
CREATE PROCEDURE `GetLastRequests`( IN `CountN` INT )
NO SQL
BEGIN
DECLARE offsetN, allNum, countClone INT;
SELECT COUNT(requests.ID) INTO allNum FROM `requests`;
SET countClone = CountN;
IF CountN = -1 THEN
SET countClone = allNum;
END IF;
SET offsetN = allNum - CountN;
IF offsetN < 0 THEN
SET offsetN = 0;
END IF;
SELECT requests.ID,
requests.AccountID,
requests.Information,
requests.Date,
requests.Status
FROM `requests`
WHERE requests.Status = 0
LIMIT offsetN, countClone;
END //
DROP PROCEDURE IF EXISTS GetFirstRequests ; //
CREATE PROCEDURE `GetFirstRequests`( IN `CountN` INT )
NO SQL
BEGIN
DECLARE allNum, countClone INT;
SELECT COUNT(requests.ID) INTO allNum FROM `requests`;
SET countClone = CountN;
IF CountN = -1 THEN
SET countClone = allNum;
END IF;
SELECT requests.ID,
requests.AccountID,
requests.Information,
requests.Date,
requests.Status
FROM `requests`
WHERE requests.Status = 0
LIMIT countClone;
END //
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment