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

Posted

技术标签:

【中文标题】我正在尝试使用 PHP、mySQL 和 EXTjs 为吉他教师编写一个简单的 Web 应用程序【英文标题】:I am trying to write a simple Web App for guitar teachers using PHP, mySQL, and EXTjs 【发布时间】:2013-04-09 01:06:20 【问题描述】:

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

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

我们必须使用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');

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

【问题讨论】:

你追求的是这样的东西吗? ***.com/questions/5628735/… 顺便欢迎来到 *** :) @Whistletoe 感谢您的欢迎和回复!使用这种代码,我可以每周为学生分配特定的日子吗?我的目标是在网站左侧的网格中生成一个时间表,这样您就可以看到当天有哪些学生来上课以及类似的事情。 您的数据库与确定学生下一课的时间无关,这是由您的 php 代码计算的。 @TobyAllen 谢谢。我知道数据库不是非常相关。我确实想展示我如何存储 DateStarted 的数据。 【参考方案1】:

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

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

但实际上,您可能希望任何给定的学生知道他们的下一课是什么时候。它可能不会取决于他们的开始日期,并且上课天数/时间会随着人们的日程安排而变化,所以我建议只使用一个带有 StudentID 的课程日期/时间的数据库表。您可以使用可以选择学生的表格来填充表格,输入日期范围以及课程的日期和时间,点击开始,您的 PHP 脚本会将课程日期输入表格。 ...或者您可以手动输入它们。

【讨论】:

不客气。请接受对您的项目最有帮助并祝您好运的答案! - 听起来很有趣!如果您最终需要 PHP 方面的帮助,请随时与我联系。 再次感谢,我们会做的! 今晚你在吗?我正在开发我的 PHP,它让我发疯。【参考方案2】:

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

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

【讨论】:

好东西!再次感谢!

以上是关于我正在尝试使用 PHP、mySQL 和 EXTjs 为吉他教师编写一个简单的 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 PHP 和 mysql 在 3 个 html 表中显示 87 行 mysql [关闭]

EXT JS:JSON 不起作用

extjs 在登录时显示确认表单

Highcharts 和 EXTJS 3:x 轴重叠的标签

如何从 ExtJS 商店打印(或警告)值?

ExtJS ComboBox设置了displayValue / value吗?