我正在尝试使用PHP, mySQL和EXTjs为吉他教师编写一个简单的Web应用程序


I am trying to write a simple Web App for guitar teachers using PHP, mySQL, and EXTjs

我正在为学校/我自己做一个项目。这是项目描述…

"我正在考虑开始吉他教学业务,并想创建一个网络应用程序,使我能够跟踪学生,他们的课程安排,音乐兴趣,付款历史,年龄,电子邮件地址和电话号码。我还希望能够创建一个记录,记录我们在一节课中学习了哪些信息,以及学生目前拥有或随着时间的推移而发展的技能列表。当学生每月付款时,我希望能够点击处理付款并通过电子邮件将发票副本发送给学生和我自己。为了维护学生记录,我会在每节课结束后使用编辑按钮更新信息。"

我们必须使用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','teacher.troxy@gmail.com','1988/5/4', '1120 Sweet St.', 'Boulder', 'CO', '55555', '555-555-5555','capn', 'crunch');
insert into student values (1, 'Joey', 'Bobby','student.troxy@gmail.com','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');
谢谢你给我的任何帮助。我希望这不是太模糊。我尽力把它解释清楚。

假设课程将从开始日期开始每周一次,您可以在MySQL中执行以下操作以从开始日期获取下一课:

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

但你真正想要的可能是让任何一个学生知道他们的下一节课是什么时候。可能不会依赖于他们的开始日期,并且课程日期/时间会随着人们的时间表而变化,所以我建议只使用一个数据库表,其中包含由studententid绑定的课程日期/时间。您可以使用表单填充该表,其中可以选择学生,输入日期范围和日期&点击开始,PHP脚本将把课程日期输入到表格. ...中也可以手工输入

如果你有固定的时间间隔,为什么不为每个学生节省平日和上课时间呢?

创建一个名为'lession'的新表,并连接学生id和教师id。然后每行有课程id、学生id、教师id、工作日和时间。