ระบบรายงานผลการเรียน

ปรับปรุง : 2550-06-14 (ปรับรุ่นของโปรแกรม)
ที่มา .. ที่ไป
กลุ่มคุณครูกลุ่มหนึ่ง .. มอบหมายให้ผมเป็นวิทยากร ช่วยออกแบบระบบฐานข้อมูลสัก 1 ระบบ แล้วเราก็เลือกระบบรายงานผลการเรียนทางอินเทอร์เน็ต เพราะทุกคนมีส่วนร่วม นำไปใช้งานได้ และคุณครูทุกท่านผ่านหลักสูตร php + mysql ระยะที่ 2 กันแล้ว จึงเป็นที่มาของการสัมมนา การออกแบบระบบฐานข้อมูลชุดนี้ พร้อมตัวอย่าง Script ที่แสดงให้เห็นความสัมพันธ์ของตารางตัวอย่าง
ระบบที่ทุกท่านเห็นอยู่นี้เป็นเพียง ตุ๊กตา ที่นำไปใช้ในการสัมมนา และร่วมกันพิจารณากับ ตัวแทนโปรแกรมเมอร์ของโรงเรียนต่าง ๆ อีกครั้ง เพราะมีเวลาเพียง 2 วัน การใช้ ตุ๊กตา หรือ สิ่งที่เป็นต้นแบบ (Prototype) น่าจะเหมาะกับกรณีนี้ แล้วค่อยขยับขยาย หรือแบ่งงานกันไปพัฒนาต่อ หลังทำความเข้าใจโครงสร้างแฟ้ม และเก็บเทคนิคการโปรแกรมเพิ่มเติม .. กลับไป (ติดตั้งใน thaiabc5e.zip จาก www.thaiabc.com ขึ้นไป)

เอกสาร : localv8.doc
2550-06-04
แฟ้มตัวอย่าง
+ students_script.zip
    - config.php
    - index.php
    - header.php
    - footer.php
    - install.php
    - menu.php
    - teacher.php
    - select01.php
    - select02.php
    - select03.php
    - select04.php
    - select05.php
    - sendgrade1.htm
    - sendgrade1.php
    - sendgrade2.htm
    - sendgrade2.php
+ abc.xls
+ abc.mdb
เว็บเพจด้านล่างนี้เป็นเว็บเพจตัวอย่างเท่านั้น
ท่านสามารถนำ script ไปใช้งาน และปรับปรุงได้
ท่านต้องมีเครื่องบริการที่มี apache + php + mysql
หรือติดตั้ง thaiabc5e.zip จะมีทุกอย่างให้ครบ

ภาพจาก phpmyadmin
ตัวอย่าง HTML สำหรับเรียกใช้ select__.php
<form action=select01.php>
รหัสนักเรียน <input name=id value=03001>
<input type=submit value=รายงาน>
</form>


ตัวอย่างคำสั่ง SQL
create table a (a1 int, a2 char(20));
insert into a values (1, "abc");
insert into a (a2, a1) values ("abc",1);
select * from a;
delete from a where a1=1;
"delete from student where studentid='" . $_GET["id"] ."'";
update a set a2="def" where a1=1;
update student set sfname="tom" where studentid="03001";
select * from a order by a2;
ขั้นตอนการนำไปใช้ใน Webhosting
1. ขั้นตอนใน Webhosting
- Login เข้าระบบของ Webhosting .
- Click : Manage SQL, Add SQL database
- Database name : grade8
- Click : Add SQL user
- SQL user name : user8 + password8
2. ขั้นตอนจัดการ Script
- Download : Script เข้า Locoal
- แก้ config.php : Host, DB, User, Password
- Click : FTP Accounts, Add FTP user
- Connect FTP Server ผ่าน FileZilla
- cd htdocs และ mkdir grade8 และ cd grade8
- Upload .php เข้า /htdocs/grade8
- เปิด http://______/grade8/index.php
- Click : สร้างตารางเก็บข้อมูล 8 ตาราง
- Click : นำเข้าข้อมูลตัวอย่างใน 8 ตาราง
3. ขั้นตอนการศึกษา
- ศึกษา abc.xls และ abc.mdb
- ทดสอบ http://______/grade8/index.php
- เปลี่ยนชื่อ install.php เป็น admin.php
- เปลี่ยนชื่อ teacher.php เป็น tadmin.php
- ลบข้อมูลในตาราง หรือลบตาราง แล้วสร้างใหม่
- สร้าง form ใช้งานจริงใน .htm แฟ้มใหม่
- เปลี่ยน code ใน select__.php ตามต้องการ
ตัวอย่างตารางข้อมูลที่มีข้อมูลซ้ำซ้อน
2 ตารางข้างล่างนี้ให้ข้อมูลได้ถูกต้องตรงกับความต้องการ แต่เป็นการเก็บข้อมูลที่ไม่เหมาะสม เพราะซ้ำซ้อน ทำให้ปรับปรุงข้อมูลได้ยาก
ข้อมูลการเป็นสมาชิกในแต่ละห้อง แต่ละปี (studentroom)
studentid	sfname	classyear	classsem	classroom	  room
03001	วุฒิพงศ์	2549	1	ป.1	1
03001	วุฒิพงศ์	2549	2	ป.1	1
03001	วุฒิพงศ์	2550	1	ป.2	1
03001	วุฒิพงศ์	2550	2	ป.2	1
03002	อิสระ	2549	1	ป.1	1
03002	อิสระ	2549	2	ป.1	1
03002	อิสระ	2550	1	ป.2	1
03002	อิสระ	2550	2	ป.2	1
03003	กฤติมา	2549	1	ป.1	1
03003	กฤติมา	2549	2	ป.1	1
03003	กฤติมา	2550	1	ป.2	1
03003	กฤติมา	2550	2	ป.2	1
ข้อมูลผลการเรียนแต่ละวิชา (regist)
studentid	sfname	classyear	classsem	subjectid	grade
03001	วุฒิพงศ์	2549	1	ค 11101	4
03001	วุฒิพงศ์	2549	1	ท 11101	1
03001	วุฒิพงศ์	2549	2	ค 12101	2
03001	วุฒิพงศ์	2549	2	ท 12101	1.5
03001	วุฒิพงศ์	2550	1	พ 11101	1.5
03001	วุฒิพงศ์	2550	1	ว 11101	1.5
03001	วุฒิพงศ์	2550	2	ส 11101	1.5
03001	วุฒิพงศ์	2550	2	อ 11101	4

ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน
ระบบจัดการข้อมูลผลการเรียน (install.php)
ขั้น
1
กำหนดค่าเริ่มต้น
- ให้เปิดแฟ้ม config.php มาแก้ไข
- กำหนดค่าให้กับตัวแปรทั้ง 4 : $mysql_host $mysql_db $mysql_user และ $mysql_password
- ถ้าไม่ทราบค่าต่าง ๆ ให้สอบถามจากผู้ดูแลระบบ หรือผู้ดูแลเครื่องบริการ
- หลายระบบไม่ยอมให้ผู้ใช้สร้างฐานข้อมูลผ่าน Script .. ให้สอบถามจากผู้ดูแลระบบ
ขั้น
2
เชื่อมต่อ MySQL Server เรียบร้อย

ขั้น
3
สร้างฐานข้อมูล เรียบร้อย
ขั้น
4
สร้างตารางเก็บข้อมูล 8 ตาราง เรียบร้อย
ขั้น
5
นำเข้าข้อมูลตัวอย่างใน 8 ตาราง เรียบร้อย
ขั้น
6
แสดงข้อมูลจากตารางต่าง ๆ ในหน้าต่างใหม่
1.student ข้อมูลนักเรียน03001 วุฒิพงศ์ เกตุพล 1234567890123443
2.teacher ข้อมูลครู10001 เกริกกล้า จาวชัยภูมิ 10001 223456789012357
3.subject ข้อมูลวิชาท 11101 ภาษาไทย 6 1110
4.classroom ข้อมูลครูประจำชั้น2549 1 ป.1 1 100114
5.studentroom ข้อมูลห้องเรียนของนักเรียน2549 1 ป.1 1 0300148
6.teachroom ข้อมูลกำหนดครูผู้สอน ตามวิชา และห้องเรียน2549 1 ท 11101 ป.1 1 100018
7.mainsubject ข้อมูลกำหนดวิชาที่ต้องเรียนในแต่ละชั้น1 ป.1 ท 1110178
8.regist ข้อมูลการลงทะเบียน และผลการเรียน2549 1 ท 11101 03001 51 198
ขั้น
7
1. แสดงรายชื่อครูประจำชั้น ปีการศึกษา และชั้นเรียน ด้วย where
2. แสดงรายชื่อครูประจำชั้น ปีการศึกษา และชั้นเรียน ด้วย join
3. แสดงรายชื่อวิชาที่นักเรียนต้องเรียนในแต่ละชั้น
(ใช้ hex เปรียบเทียบภาษาไทย และ +0 จัดเรียงเลข)
4. เพิ่มระเบียนใหม่เข้าแฟ้ม classroom (ไม่มีผลลัพธ์ แต่อาจนำเข้าเรียบร้อย)
5. แสดงรายวิชาที่นักเรียน เรียนตามหลักสูตร (ถ้าไม่เรียนจะไม่แสดง)
6. แสดงรายวิชาที่นักเรียน เรียนตามหลักสูตร และที่ยังไม่เรียน
คัดลอก SQL คำสั่งนี้มาจาก Microsoft Access แล้วลบเครื่องหมาย [ ] และใช้ hex()
ตัวอย่างนี้ไม่แสดงชื่อวิชาถ้าไม่พบใน regist
ในตัวอย่าง select01.php ได้แก้ไขใหม่
โดยสร้าง relation ใหม่ให้แสดงชื่อวิชาแล้ว
และแก้ไขใน .mdb ให้เหมือนใน .php แล้ว
7. แสดงรายวิชาที่นักเรียน เลือกตามปี ภาค และรหัสวิชา
http://www.roseindia.net/mysql/mysql5/mysql-string-function.shtml
ขั้น
8
นำข้อมูลจาก excel เข้าฐานข้อมูล
- ต้องเข้าใจโครงสร้าง ที่สัมพันธ์กับชื่อตารางด้านล่าง
- ท่านพิมพ์ข้อมูลใน excel แล้วเลือก copy ส่วนที่พิมพ์ แล้ว paste ลงในช่องด้านล่าง
- รหัส 10056 และ 10057 เป็นตัวอย่างข้อมูลครู ที่ไม่มีในตัวอย่างข้อมูลครั้งแรก

ขั้น
9
เปลี่ยนชื่อแฟ้ม install.php เป็นชื่ออื่น เมื่อเริ่มใช้งานระบบนี้
- ถ้าต้องการลบฐานข้อมูล ให้ใช้คำสั่ง เช่น drop database students;
- ผมไม่เขียนโปรแกรมรองรับ เพราะป้องกันการลบฐานข้อมูล .. โดยไม่ตั้งใจ

รวมบริการสำหรับใช้งาน โดยนักเรียน
1. แสดงผลการเรียนของนักเรียน
เลือกตามรหัสนักเรียน แยกตามระดับชั้น
รหัสนักเรียน
2. แสดงผลการเรียนของนักเรียน
เลือกตามรหัสวิชา ปีการศึกษา และภาค
: regist
: student
: subject
ปีการศึกษา
ภาคการศึกษา
รหัสวิชา
3. แสดงรายชื่อนักเรียน
เลือกตามปี ภาค และห้องเรียน
: studentroom
: classroom
: teacher
: student
ปีการศึกษา
ภาคการศึกษา
ชั้น
ห้อง
4. รายงานแสดงผลรวมคะแนน
เลือกตามรหัสนักเรียน แยกตามระดับชั้น
ใช้ SQL ตามตำแหน่งที่ต้องการ
รหัสนักเรียน
5. แสดงค่าเฉลี่ยคะแนนของทุกคน เลือกหน้า
จำนวนระเบียนต่อหน้า

ผู้เข้ารับการอบรม คุณครูโปรแกรมเมอร์
1. ผอ.พนิตตา แก้วกูร เทศบาล7 นครลำปาง lp7
2. ผช.วิเชษฐ์ ลังกากาศ เทศบาล3 นครลำปาง lp3
3. ชาติ หมีเอี่ยม เทศบาล5 นครเชียงราย cr5
4. สัญญา เสียงหวาน เทศบาลวัดเหมืองแดง นครแพร่ py3
5. วิเชียร ยาสมุทร เทศบาล3 นครลำพูน lpn3
6. ปรีดาพร ตาลี เทศบาล7 นครลำปาง lp7
7. สิทธิกร ตุ้ยเต็มวงศ์ เทศบาล4 นครลำปาง lp4
8. ธรรมนูญ เสาร์แก้ว เทศบาล1 เมืองแม่ฮ่องสอน mh1
9. บรรลังษ์ ลังการัตน์ เทศบาล8 นครเชียงใหม่ cm8
10. ศักดิ์ณรงค์ พรมสะวะนา จุมปีวนิดาภรณ์ เมืองน่าน nn1

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223