![]() | โปรแกรมรายงานผลการเรียน เบื้องต้น | ![]() |
|
บทเรียนทั้งหมดนี้ ได้ทำเป็น กรณีศึกษาไว้ที่ http://www.thaiall.com/asp/sgrade.htm เพื่อให้เรียกใช้ได้ง่าย ส่วนนี้ผมทำเป็น ทั้งบทเรียน ให้ท่านนำไปเขียนใช้เอง และส่วนที่ ให้บริการครู อาจารย์ ประกาศผลการเรียน ในวิชาของตน หรือจะเรียกบริการประกาศผลการเรียน ด้วยบริการ redirection ที่ http://go.to/grade ก็จะจำได้ง่ายกว่า
|
| ข้อควรทราบ |
|
| อ่านข้อมูลมาแสดงอย่างง่าย |
| Source code ของ sgrdlstt.asp
http://thaiall.thailandhosting.net/asp/sgrdlstt.asp |
<html><title>Testing of grade listing</title>
<body><font face="microsoft sans serif">
Testing of grade listing<hr>
<table width=100% bgcolor=#ffffdd>
<%
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
Set rsUser = objConn.Execute("SELECT tid,sid,sname,grade FROM grade")
do while not rsUser.eof
%>
<tr>
<td><%=rsUser("tid")%></td>
<td><%=rsUser("sid")%></td>
<td><%=rsUser("sname")%></td>
<td><%=rsUser("grade")%></td>
</tr>
<%
rsUser.movenext
loop
rsUser.close
set rsUser=nothing
%>
</table>
</body></html>
Click To View Source Code
|
|
แสดงผลจากรหัสการสอน ซึ่งรับค่าได้ทั้งผ่าน form และ url |
| ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrdlsts.asp method=post> <b>รหัสการสอน</b> : <input type="text" name=tid size=5 value=1><br> <input type=submit value="Show grade report"><input type=reset value=Reset> </form> |
| Source code ของ sgrdlsts.asp |
<html><title>บริการประกาศผลการเรียน ทาง Internet</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
<font size=4><center>บริการประกาศผลการเรียนทาง Internet</center></font>
<hr>
<%
xtid = request.form("tid") + request.querystring("tid")
response.write("รหัสการสอน : <b><font color=#ff0000 size="2">"& xtid & "</font></b>")
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
Set rsUser = objConn.Execute("SELECT tid,school,subj,tyear,tsem,tname,typeshow FROM teacher where teacher.tid=" & xtid)
response.write("( " & rsUser("tyear") &" / ")
response.write(rsUser("tsem") &" )<br>")
response.write("<center><font color=#0000ff><b>" & rsUser("school")&"</b></font><br>")
response.write("<b><font color=#008000 size="2">" & rsUser("subj") &"</font></b></center>")
tshow = rsUser("typeshow")
tname = rsUser("tname")
rsUser.close
set rsUser = objConn.execute("select tid,sid,sname,scorekeep,scoremid,scoreproject,scorefinal,grade from grade where grade.tid=" & xtid)
response.write("<table width=100% >")
response.write("<tr bgcolor=#00dddd><td>ลำดับ</td><td>รหัส</td><td>ชื่อ - สกุล</td>")
if tshow= "l" then
response.write("<td>คะแนนเก็บ</td>")
response.write("<td>คะแนนสอบกลางภาค</td>")
response.write("<td>คะแนนรายงาน</td>")
response.write("<td>คะแนนสอบปลายภาค</td>")
response.write("<td>คะแนนรวม</td>")
end if
response.write("<td>เกรด</td></tr>")
i = 0
do while not rsUser.eof
i = i + 1
if (i mod 2) = 0 then
response.write("<tr bgcolor=#cccccc>")
else
response.write("<tr bgcolor=#fffffd>")
end if
response.write("<td>" & i &"</td>")
response.write("<td>" & rsUser("sid")&"</td>")
response.write("<td>" & rsUser("sname")&"</td>")
if tshow= "l" then
response.write("<td>" & rsUser("scorekeep")&"</td>")
response.write("<td>" & rsUser("scoremid")&"</td>")
response.write("<td>" & rsUser("scoreproject")&"</td>")
response.write("<td>" & rsUser("scorefinal")&"</td>")
ss = rsUser("scorekeep")+rsUser("scoremid")+rsUser("scoreproject")+rsUser("scorefinal")
response.write("<td><b>" & ss &"</b></td>")
end if
response.write("<td>" & rsUser("grade")&"</td></tr>")
rsUser.movenext
loop
response.write("</table>")
response.write("ชื่อผู้สอน : <b>" & tname &"</b> [ ")
if tshow = "s" then response.write("s : รายงานแบบสั้น]<hr>")
if tshow = "l" then response.write("l : รายงานแบบสั้น พร้อมคะแนนสอน]<hr>")
rsUser.close
set rsUser=nothing
%>
</body>
</html>
Click To View Source Code
|
|
เพิ่มวิชา คะแนน และเกรด (ส่วนนี้ใช้การส่งค่า 2 ช่วงคือ sgrdadd.asp และ sgrdaddx.asp) |
| ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrdadd.asp method=post> ชื่อสถาบัน : <input type="text" name=school size=40 value="โรงเรียนบุญวาทย์วิทยาลัย"><br> ปีการศึกษา : <input type="text" name=tyear size=6 value="2543"> ภาคการศึกษา : <input type="text" name=tsem size="2" value="1"><br> รหัสวิชา หรือชื่อวิชา : <input type="text" name=subj size=30 value="คอมพิวเตอร์เบื้องต้น"><br> ชื่อผู้สอน : <input type="text" name=tname size=40 value="อาจารย์เกิน กำดี"><br> รหัสผ่าน : <input type=password name=passwd size=8> รหัสผ่านอีกครั้ง : <input type=password name=passwdc size=8><br> จำนวนนักเรียน : <input type="text" name=amount size=3 value=3> เลขระบุช่องว่าง สำหรับข้อมูล<br> <b>โปรดเลือกแบบ</b> : ของการจัดเก็บข้อมูล และการแสดงผลเกรด<br> <input type=radio name=typeshow value="s" checked>เก็บ เกรดที่ต้องการแสดง<br> <input type=radio name=typeshow value="l">เก็บ คะแนน และเกรดอะไร<br> <input type=submit value="Add new subject"><input type=reset value=Reset><br> </form> |
|
โปรแกรมสำหรับเพิ่มระเบียนในตาราง teacher Source code ของ sgrdadd.asp |
<body><font face="microsoft sans serif">
<%
if len(request.form("passwd")) > 0 and (request.form("passwd") = request.form("passwdc")) then
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
sql = "INSERT into teacher (school,tyear,tsem,subj,tname,typeshow,passwd) SELECT "
sql = sql & " '" & request.form("school") & "' as school, "
sql = sql & " " & request.form("tyear") & " as tyear, "
sql = sql & " " & request.form("tsem") & " as tsem, "
sql = sql & " '" & request.form("subj") & "' as subj, "
sql = sql & " '" & request.form("tname") & "' as tname, "
sql = sql & " '" & request.form("typeshow") & "' as typeshow, "
sql = sql & " '" & request.form("passwd") & "' as passwd; "
Set rsUser = objConn.Execute(sql)
Set rsUser = objConn.Execute("SELECT tid from teacher order by tid desc;")
response.write("รหัสการสอน ของท่านคือ <b>" & rsUser("tid") & "</b><hr>")
response.write("<br>Step 1 of 2 : Put your information to TEACHER is OK <hr>")
response.write("This is step 2 of 2 :")
lasttid = rsUser("tid")
rsUser.close
Set rsUser = nothing
response.write("<form action=http://thaiall.thailandhosting.net/asp/sgrdaddx.asp method=post>")
response.write("<input type=hidden name=tid value=" & lasttid & ">")
response.write("<input type=hidden name=amount value=" & request.form("amount") & ">")
response.write("<input type=hidden name=typeshow value=" & request.form("typeshow") & ">")
for i = 1 to cint(request.form("amount"))
response.write("รหัสนักเรียน<input type="text" size=10 name=sid" & i &" > ")
response.write("ชื่อ<input type="text" size="2"0 name=sname" & i &" > ")
if request.form("typeshow") = "s" then
response.write("เกรด<input type="text" size=3 name=grade" & i &" ><br>")
end if
if request.form("typeshow") = "l" then
response.write("เก็บ <input type="text" size=3 name=scorekeep" & i &" >")
response.write("กลาง<input type="text" size=3 name=scoremid" & i &" >")
response.write("รายงาน <input type="text" size=3 name=scoreproject" & i &" >")
response.write("ปลาย<input type="text" size=3 name=scorefinal" & i &" > ")
response.write("เกรด<input type="text" size=3 name=grade" & i &" ><br>")
end if
response.write("<br>")
next
response.write("<input type=submit value='Save all grade in file'>")
response.write("<input type=reset value=Reset>")
response.write("</form>")
else
response.write("ข้อมูลมีปัญหา โปรแกรมกลับไปตรวจสอบให้เรียบร้อย<br>หรือ ท่านอาจไม่ได้ระบุรหัสผ่าน")
response.write("<br>Your data have problem. Please back for checking.")
end if
%>
<hr>
</body>
|
|
โปรแกรมสำหรับเพิ่มระเบียนในตาราง grade Source code ของ sgrdaddx.asp |
<body><font face="microsoft sans serif">
<%
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
for i = 1 to cint(request.form("amount"))
' type s
if request.form("typeshow") = "s" then
if len(request.form("tid")) > 0 and len(request.form("sid"&i)) > 0 and len(request.form("sname"&i)) > 0 then
sql = "INSERT into grade (tid,sid,sname,grade) SELECT "
sql = sql & " " & request.form("tid") & " as tid, "
sql = sql & " " & request.form("sid"&i) & " as sid, "
sql = sql & " '" & request.form("sname"&i) & "' as sname, "
sql = sql & " '" & request.form("grade"&i) & "' as grade; "
Set rsUser = objConn.Execute(sql)
end if
end if
' type l
if request.form("typeshow") = "l" then
if len(request.form("tid")) > 0 and len(request.form("sid"&i)) > 0 and len(request.form("sname"&i)) > 0 then
sql = "INSERT into grade (tid,sid,sname,scorekeep,scoremid,scoreproject,scorefinal,grade) SELECT "
sql = sql & " " & request.form("tid") & " as tid, "
sql = sql & " " & request.form("sid"&i) & " as sid, "
sql = sql & " '" & request.form("sname"&i) & "' as sname, "
sql = sql & " " & request.form("scorekeep"&i) & " as scorekeep, "
sql = sql & " " & request.form("scoremid"&i) & " as scoremid, "
sql = sql & " " & request.form("scoreproject"&i) & " as scoreproject, "
sql = sql & " " & request.form("scorefinal"&i) & " as scorefinal, "
sql = sql & " '" & request.form("grade"&i) & "' as grade; "
Set rsUser = objConn.Execute(sql)
end if
end if
next
Set rsUser = nothing
%>
Step 2 of 2 : Your student score is OK
<hr>
</body>
Click To View Source Code ของ sgrdadd.asp Click To View Source Code ของ sgrdaddx.asp |
|
แสดงผลสรุปว่ามี รหัสการสอนอะไรบ้าง และจำนวน ซึ่งใช้วิธีการอ่านแฟ้ม query จาก group by ตาราง 2 ตาราง |
|
Source code ของ sgrdlsta.asp
http://thaiall.thailandhosting.net/asp/sgrdlsta.asp |
<html><title>สรุป จำนวนนักเรียน เรียงตามรหัสการสอน</title>
<body bgcolor=#000000><font face="microsoft sans serif">
<font size=4 color=#ff0000><center>สรุป จำนวนนักเรียน เรียงตามรหัสการสอน</center></font>
<hr>
<table width=100% bgcolor=#ffffdd>
<tr><td>ลำดับ</td><td>รหัสการสอน</td><td>ชื่อสถาบัน</td><td>ชื่อผู้สอน</td><td>ชื่อวิชา</td><td>จำนวน</td><td>แสดงผล</td>
<%
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
Set rsUser = objConn.Execute("SELECT tid,school,tname,subj,cnts FROM cntstd order by tid desc;" )
i = 0
do while not rsUser.eof
i = i + 1
if (i mod 2) = 0 then
response.write("<tr bgcolor=#cccccc>")
else
response.write("<tr bgcolor=#fffffd>")
end if
%>
<td><%=i%></td>
<td><%=rsUser("tid")%></td>
<td><%=rsUser("school")%></td>
<td><%=rsUser("tname")%></td>
<td><%=rsUser("subj")%></td>
<td><%=rsUser("cnts")%></td>
<td><a href=sgrdlsts.asp?tid=<%=rsUser("tid")%>>Click here</a></td>
</tr>
<%
rsUser.movenext
loop
rsUser.close
set rsUser=nothing
%>
</table>
<font color=#ffffdd>
<b>หมายเหตุ</b> :<br>
ถ้าวิชาใด มีนักเรียน ไม่เกิน 3 คน หรือกรอกข้อมูลไม่สมบูรณ์ <b>ทีมงานขอใช้สิทธิ์ลบข้อมูล</b> ซึ่งไม่ก่อประโยชน์นั้นทั้งชุด
</body>
</html>
Click To View Source Code
|
|
ลบข้อมูลโดยใช้รหัสการสอน และรหัสผ่าน โดยลบจากตาราง teacher และ grade ด้วย click เดียว |
| ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrddel.asp method=post> รหัสการสอน : <input type="text" name=tid size=5 value=1><br> รหัสผ่าน : <input type=password name=passwd size=10><br> <input type=submit value="Delete all of your records"><input type=reset value=Reset> </form> |
| Source code ของ sgrddel.asp |
<body>
<%
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb"))
Set rsUser = objConn.Execute("SELECT tid,passwd FROM teacher where teacher.tid=" & request.form("tid"))
if not rsUser.eof then
if request.form("passwd") = rsUser("passwd") then
response.write("Delete ID :" & request.form("tid"))
Set rsUser = objConn.Execute("DELETE tid,school FROM teacher WHERE teacher.tid= " & request.form("tid"))
Set rsUser = objConn.Execute("DELETE tid FROM grade WHERE grade.tid= " & request.form("tid"))
else
response.write("Your password is not correct.")
end if
else
response.write("Your tid is not found")
end if
Set rsUser = nothing
%>
<hr>
</body>
Click To View Source Code
|
| แบบฝึกหัด |
|