2013-04-09 39 views
0

我正在为学校/我自己开发一个项目。这是项目描述...我正在为使用PHP,mySQL和EXTjs的吉他教师编写一个简单的Web应用程序

“我正在考虑开始吉他教学业务,并希望创建一个Web应用程序,使我能够跟踪学生,他们的课程安排,音乐兴趣,付款记录,年龄,电子邮件地址和电话号码,我还希望能够创建一份关于我们在一节课中学到了什么信息的记录,以及学生目前拥有或已经开发的一系列技能列表。学生每月付款我希望能够点击过程支付,并通过电子邮件将发票副本发送给学生和我自己。为了维护学生记录,我会使用编辑按钮在每节课后更新信息“。

我们必须使用ExtJS的为我们的表现层,PHP作为了逻辑层和MySQL作为我们的数据库。

我觉得能够来填充我的网格和页面的布局相当有信心。 但是我很担心能够确保我能够生成一个学生应该有下一课的日期(例如,今天是4月8日,这个学生下一节课将是4月15日,然后是第22节等)

我还没有开始我的PHP代码,我想知道是否有人可以指出我在正确的方向,因为我真的不知道我将如何做我想做的事情基于学生的日期开始了。

我的数据库代码如下。

use mydatabase; 

drop table teacher; 
drop table student; 
drop table payment; 
drop table skills; 
drop table TeacherTrainingLog; 
drop table StudentTrainingLog; 


CREATE TABLE teacher 
    (TeacherID int, 
    TeacherLast varchar(30), 
    TeacherFirst varchar(30), 
    TeacherEmail varchar(254), 
    TeacherDOB date, 
    TeacherAddress varchar(50), 
    TeacherCity varchar(30), 
    TeacherState char(2), 
    TeacherZip varchar(10), 
    TeacherPhone varchar(12), 
    TeacherUserId varchar(50), 
    TeacherPassword varchar(15)); 
alter table teacher add constraint TeacherPK primary key (TeacherID); 


CREATE TABLE student 
    (StudentID int, 
    StudentLast varchar(30), 
    StudentFirst varchar(30), 
    StudentEmail varchar(254), 
    DateStarted date, 
    StudentDOB date, 
    MusicInterest text, 
    StudentAddress varchar(50), 
    StudentCity varchar(30), 
    StudentState char(2), 
    StudentZip varchar(10), 
    StudentPhone varchar(12), 
    StudentUserId varchar(50), 
    StudentPassword varchar(15), 
    TeacherID int); 
alter table student add constraint StudentPK primary key (StudentID); 
alter table student add constraint TeacherFK foreign key (TeacherID) references teacher(TeacherID); 



CREATE TABLE payment 
    (PaymentID int, 
    PaymentDueDate date, 
    PaymentAmount int, 
    TeacherID int, 
    StudentID int); 
alter table payment add constraint PaymentPK primary key (PaymentID); 
alter table payment add constraint TeacherFK foreign key (TeacherID) references teacher(TeacherID); 
alter table payment add constraint StudentFK foreign key (StudentID) references student(StudentID); 


CREATE TABLE skills 
    (SkillID int, 
    SkillName varchar(30)); 
alter table skills add constraint SkillPK primary key (SkillID); 


CREATE TABLE TeacherTrainingLog 
    (TeacherID int, 
    SkillID int, 
    TeacherDateStarted date, 
    Teacherlevel int, 
    TeacherTrainingNotes text); 
alter table TeacherTrainingLog add constraint TeachIDfk foreign key (TeacherID) references teacher (TeacherID); 
alter table TeacherTrainingLog add constraint SkillIDfk foreign key (SkillID) references skills (SkillID); 
alter table TeacherTrainingLog add constraint TeacherTraingingLogPK primary key (TeacherID, SkillID); 

CREATE TABLE StudentTrainingLog 
    (StudentID int, 
    SkillID int, 
    StudentDateStarted date, 
    Studentlevel int, 
    StudentTrainingNotes text); 
alter table StudentTrainingLog add constraint StudentIDfk foreign key (StudentID) references student (StudentID); 
alter table StudentTrainingLog add constraint SkillIDfk foreign key (SkillID) references skills (SkillID); 
alter table StudentTrainingLog add constraint StudentTraingingLogPK primary key (StudentID, SkillID); 



insert into teacher values (1, 'Bob', 'Joe','[email protected]','1988/5/4', '1120 Sweet St.', 'Boulder', 'CO', '55555', '555-555-5555','capn', 'crunch'); 

insert into student values (1, 'Joey', 'Bobby','[email protected]','2013/4/8', '1988/9/12', 'Led Zepplin, Taylor Swift', '2120 Garbage Can Ln', 'Boulder', 'CO', '55555', '333-333-333','student1', 

'first', 1); 

insert into skills values (1, 'Chord'); 
insert into skills values (2, 'Strumming'); 
insert into skills values (3, 'Alternate Picking'); 
insert into skills values (4, 'Bend'); 
insert into skills values (5, 'Bend/Release'); 
insert into skills values (6, 'Hammer-on'); 
insert into skills values (7, 'Pull-off'); 
insert into skills values (8, 'Slide'); 
insert into skills values (9, 'Vibrato'); 
insert into skills values (10, 'Tapping'); 
insert into skills values (11, 'Natural Harmonic'); 
insert into skills values (12, 'Pinch Harmonic'); 
insert into skills values (13, 'Sweep Picking'); 
insert into skills values (14, 'Finger Picking'); 

感谢您给我的任何帮助。我希望这不是模糊的。我试图解释它,以及我知道如何。

+0

这是你以后的事情吗? http://stackoverflow.com/questions/5628735/get-the-date-of-one-week-from-today-with-php 欢迎来到StackOverflow的方式:) – Whistletoe 2013-04-09 01:13:41

+0

@Whistletoe感谢您的欢迎和回复!有了这样的代码,我可以将每周的特定日期分配给学生吗?我的目标是在网站左侧的网格中生成一个时间表,以便您可以查看学生们今天进来的情况以及类似情况。 – 2013-04-09 01:21:53

+0

您的数据库无法确定学生的下一课是什么,这是由您的php代码计算出来的。 – 2013-04-09 01:22:15

回答

1

假设的教训将是从起始日期每周,你可以做这样的事情在MySQL中,从他们的出发日期获得下一课:

SELECT DATE_ADD(DateStarted, INTERVAL 7 DAY) FROM `StudentID` WHERE StudentID = ?; 

但实际上你可能想要的是对于任何给定学生知道他们的下一课是什么时候。这可能是不会依赖于他们的开始日期,并且课程天数/时间会随着人们的时间表而改变,所以我建议只需要一个带有StudentID绑定的课程日期/时间的数据库表。您可以使用表格填写表格,您可以选择学生,输入日期范围和课程日期,点击开始,您的PHP脚本会将课程日期输入到表格中。 ...或者你可以手动输入。

+0

这是一个好主意的人!谢谢! – 2013-04-09 02:00:05

+0

不客气。请接受对您的项目最有帮助和好运的答案! - 听起来很好玩!如果您最终需要PHP帮助,请随时与我联系。 – Revent 2013-04-09 02:24:37

+0

再次感谢,并会做! – 2013-04-09 02:38:59

0

如果你有固定的时间间隔,为什么不保存每个学生的工作日和lession时间?

创建一个名为“lession”新表并连接凭学生证和教师证。每行然后有主题ID,学生ID,教师ID,工作日和时间。

+0

好东西!再次感谢! – 2013-04-09 02:00:43

相关问题