การทำระบบสมาชิก แบบ confirm
เว็บเพจสำรอง (Backup Webpages) : http://www.thaiall.com/asp/aspmcf.htm | http://www.thaiabc.com/asp/aspmcf.htm
ปรับปรุง : 2548-02-08 ()
[ การทำระบบสมาชิก(confirm) ]

  1. ข้อควรทราบ
  2. การเพิ่มสมาชิกใหม่ [ ทดสอบ form เพิ่มข้อมูล ]
  3. การลบสมาชิก [ ทดสอบ form ลบข้อมูล ]
  4. การแก้ไขสมาชิก [ ทดสอบ form แก้ไขข้อมูล ]
  5. การพิมพ์ข้อมูลสมาชิกล่าสุด 10 คน [ สั่ง แสดงข้อมูล ]
  6. การนับระเบียนในแฟ้ม [ สั่ง นับระเบียน ]
  7. แบบฝึกหัด
ข้อควรทราบ
  1. บทเรียนนี้ ปรับปรุงมาจากบทเรียน การทำระบบสมาชิกใน access
  2. โดยมีข้อแตกต่างที่ชัดเจน คือ เพิ่มการ confirm ข้อมูล ในโปรแกรมทั้ง 3 คือ โปรแกรม เพิ่ม ลบ และแก้ไข ซึ่งมีรายละเอียดไม่มากที่ต้องทำความเข้าใจ
  3. สำหรับข้อมูลยังคงใช้แฟ้มชุดเดียวกันคือ /cgi-bin/member01.mdb
  4. แต่สิ่งที่น่าสังเกตุคือ การใช้ asp โปรแกรมเดียว แต่แสดงผลได้ 2 รูปแบบ ทำให้ไม่ต้องเขียนโปรแกรม asp หลาย ๆ โปรแกรม และหากท่านเข้าใจโปรแกรมทั้งหมดดีแล้ว ก็ อย่างให้พยายามรวมโปรแกรมทั้ง เพิ่ม ลบ และแก้ไขไว้ใน asp โปรแกรมเดียว .. ลองดูนะครับ

การเพิ่มสมาชิกใหม่
เพิ่มการถามย้ำ การเพิ่มข้อมูล จากบทเรียน การทำระบบสมาชิกใน access
เมื่อสั่งเพิ่ม โปรแกรมจะนำข้อมูลมาแสดงอีกครั้ง แล้วถามให้แน่ใจ ก่อนเพิ่มในฐานจริง ๆ
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmcfad.htm Source code ของ /aspmcfad.htm
เพิ่มข้อมูลสมาชิกใหม่ (มีการถามย้ำ ก่อนจัดเก็บจริง)
ชื่อสมาชิก :
E-Mail :
ชื่อเว็บ :
ที่อยู่เว็บ :
คำอธิบายเว็บ :


Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Add new member(With confirm)</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
เพิ่มข้อมูลสมาชิกใหม่ (มีการถามย้ำ ก่อนจัดเก็บจริง)<br>
<form action=http://thaiall.webhostme.com/aspmcfad.asp method=post>
ชื่อสมาชิก : <input type="text" name=name size=40><br>
E-Mail : <input type="text" name=email size=40><br>
ชื่อเว็บ : <input type="text" name=webname size=40><br>
ที่อยู่เว็บ : <input type="text" name=address size=40 value="http://"><br>
คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br>
<input type=submit value="Add member"><input type=reset value=Reset>
</form>
</body></html>
Source code ของโปรแกรมเพิ่มระเบียน /aspmcfad.asp
<%
if request.form("confirm") = "OK" then
   set connNews = server.createobject("ADODB.Connection")
   connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
   sql = "INSERT into member ( name, email, webname, address, describ ) SELECT "
   sql = sql & " '" & request.form("name") & "' as name, " 
   sql = sql & " '" & request.form("email") & "' as email, " 
   sql = sql & " '" & request.form("webname") & "' as webname, " 
   sql = sql & " '" & request.form("address") & "' as address, " 
   sql = sql & " '" & request.form("describ") & "' as describ; "
   set rsArticles = connNews.Execute(sql)
   connNews.close
   set connNews = nothing
   response.write("<body>")
   response.write("<b>Add new member (Complete)</b><hr>")
else
   response.write("<body bgcolor=#ddffdd><font face='microsoft sans serif' size="0">")
   response.write("เพิ่มข้อมูลสมาชิกใหม่ (ถามย้ำ)<br>")
   response.write("<form action=http://thaiall.webhostme.com/aspmcfad.asp method=post>")
   response.write("ชื่อสมาชิก : " & request.form("name") )
   response.write("<input type=hidden name=name value='" & request.form("name") & "'><br>")
   response.write("E-Mail : " & request.form("email") )
   response.write("<input type=hidden name=email value='" & request.form("email") & "'><br>")
   response.write("ชื่อเว็บ : " & request.form("webname") )
   response.write("<input type=hidden name=webname value='" & request.form("webname") & "'><br>")
   response.write("ที่อยู่เว็บ : " & request.form("address") )
   response.write("<input type=hidden name=address value='" & request.form("address") & "'><br>")
   response.write("คำอธิบายเว็บ : <br>" & request.form("describ") )
   response.write("<input type=hidden name=describ value='" & request.form("describ") & "'><br>")
   response.write("<input type=hidden name=confirm value='OK'>")
   response.write("<input type=submit value='Add member (Confirm)'>")
   response.write("</form>")
end if
%>
<a href=/aspmcfls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmcfad.htm>Add</a>,
<a href=/aspmcfdl.htm>Delete</a>,
<a href=/aspmcfed.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การลบสมาชิก
เพิ่มการถามย้ำ การลบข้อมูล จากบทเรียน การทำระบบสมาชิกใน access
โดยครั้งแรก ถามเฉพาะรหัส แล้วไปเลือกข้อมูลมาแสดง แล้วถามว่าจะลบ หรือไม่
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmcfdl.htm Source code ของ /aspmcfdl.htm
ลบข้อมูลสมาชิก (มีการถามย้ำ ก่อนลบจริง)
รหัสสมาชิกที่ต้องการลบ :

Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Delete member (With confirm on data)</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
ลบข้อมูลสมาชิก (มีการถามย้ำ ก่อนลบจริง)<br>
<form action=http://thaiall.webhostme.com/aspmcfdl.asp method=post>
รหัสสมาชิกที่ต้องการลบ : <input type="text" name=delid size="2"0><br>
<input type=submit value="Delete member"><input type=reset value=Reset>
</form>
</body></html>
Source code ของโปรแกรมลบระเบียน /aspmcfdl.asp
<%
if request.form("confirm") = "OK" then
   set connNews = server.createobject("ADODB.Connection")
   connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
   sql = "DELETE * FROM member WHERE (member.id= " & request.form("delid") & ");"
   set rsArticles = connNews.Execute(sql)
   connNews.close
   set connNews = nothing
   response.write("<body>")
   response.write("<b>Delete new member (Complete)</b><hr>")
else
   thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
   Set rec = Server.CreateObject("ADODB.Recordset")
   sql = "select * from member WHERE (member.id= " & request.form("delid") & ");"
   rec.Open sql, thaialldbaccess97
   i = 1
   if Not rec.eof then 
      rec.MoveFirst
      response.write("<body bgcolor=#ddffdd><font face='microsoft sans serif' size="0">")
      response.write("ลบข้อมูลสมาชิกใหม่ (ถามย้ำ)<br>")
      response.write("<form action=http://thaiall.webhostme.com/aspmcfdl.asp method=post>")	  
      response.write("รหัสสมาชิก : " & rec("id") )
      response.write("<input type=hidden name=delid value=" & rec("id") & "><br>")	  
      response.write("ชื่อสมาชิก : " & rec("name") )
      response.write("<input type=hidden name=name value='" & rec("name") & "'><br>")
      response.write("E-Mail : " & rec("email") )
      response.write("<input type=hidden name=email value='" & rec("email") & "'><br>")
      response.write("ชื่อเว็บ : " & rec("webname") )
      response.write("<input type=hidden name=webname value='" & rec("webname") & "'><br>")
      response.write("ที่อยู่เว็บ : " & rec("address") )
      response.write("<input type=hidden name=address value='" & rec("address") & "'><br>")
      response.write("คำอธิบายเว็บ : " & rec("describ") )
      response.write("<input type=hidden name=describ value='" & rec("describ") & "'><br>")
      response.write("<input type=hidden name=confirm value='OK'>")
      response.write("<input type=submit value='Delete member (Confirm)'>")
      response.write("</form>")   
   else
      response.write("Not found")
   end if
end if
%>
<a href=/aspmcfls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmcfad.htm>Add</a>,
<a href=/aspmcfdl.htm>Delete</a>,
<a href=/aspmcfed.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การแก้ไขสมาชิก
เพิ่มการถามย้ำ การลบข้อมูล จากบทเรียน การทำระบบสมาชิกใน access
จะถามเฉพาะรหัสก่อน แล้วนำไปเลือกข้อมูลในแฟ้มมาให้แก้ไข ต่างจากเดิม ที่นำข้อมูลใหม่ไปทับทันที
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmcfed.htm Source code ของ /aspmcfed.htm
แก้ไขข้อมูลสมาชิก (แสดงข้อมูลเดิมมาให้แก้ไข)
รหัสสมาชิก : (ต้องมีอยู่ในฐานข้อมูลแล้ว)

Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Edit member (With old record)</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
แก้ไขข้อมูลสมาชิก (แสดงข้อมูลเดิมมาให้แก้ไข)<br>
<form action=http://thaiall.webhostme.com/aspmcfed.asp method=post>
รหัสสมาชิก : <input type="text" name=id size="2"0> (ต้องมีอยู่ในฐานข้อมูลแล้ว)<br>
<input type=submit value="Edit member"><input type=reset value=Reset>
</form>
</body></html>
Source code ของโปรแกรมแก้ไขข้อมูล /aspmcfed.asp
<%
if request.form("confirm") = "OK" then
   set connNews = server.createobject("ADODB.Connection")
   connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
   sql = "UPDATE member set "
   sql = sql & " member.name = '" & request.form("name") & "', " 
   sql = sql & " member.email = '" & request.form("email") & "', " 
   sql = sql & " member.webname = '" & request.form("webname") & "', " 
   sql = sql & " member.address = '" & request.form("address") & "', " 
   sql = sql & " member.describ = '" & request.form("describ") & "' "
   sql = sql & " Where member.id = " &  request.form("id") & " ;"
   set rsArticles = connNews.Execute(sql)
   connNews.close
   set connNews = nothing
   response.write("<body>")
   response.write("<b>Edit member (Complete)</b><hr>")
else
   thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
   Set rec = Server.CreateObject("ADODB.Recordset")
   sql = "select * from member WHERE (member.id= " & request.form("id") & ");"
   rec.Open sql, thaialldbaccess97
   i = 1
   if Not rec.eof then 
      rec.MoveFirst
      response.write("<body bgcolor=#ddffdd><font face='microsoft sans serif' size="0">")
      response.write("ปรับปรุงข้อมูลสมาชิกใหม่ (ถามย้ำ)<br>")
      response.write("<form action=http://thaiall.webhostme.com/aspmcfed.asp method=post>")	  
      response.write("รหัสสมาชิก : " & rec("id") )
      response.write("<input type=hidden name=id value=" & rec("id") & "><br>")	  
      response.write("ชื่อสมาชิก : ")
      response.write("<input type="text" name=name value='" & rec("name") & "'><br>")
      response.write("E-Mail : ")
      response.write("<input type="text" name=email value='" & rec("email") & "'><br>")
      response.write("ชื่อเว็บ : ")
      response.write("<input type="text" name=webname value='" & rec("webname") & "'><br>")
      response.write("ที่อยู่เว็บ : ")
      response.write("<input type="text" name=address value='" & rec("address") & "'><br>")
      response.write("คำอธิบายเว็บ : ")
	  response.write("<textarea rows=3 cols=40 name=describ>" & rec("describ") & "</textarea>")      
      response.write("<input type=hidden name=confirm value='OK'>")
      response.write("<input type=submit value='Edit member (Confirm)'>")
      response.write("</form>")   
   else
      response.write("Not found")
   end if
end if
%>
<a href=/aspmcfls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmcfad.htm>Add</a>,
<a href=/aspmcfdl.htm>Delete</a>,
<a href=/aspmcfed.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การพิมพ์ข้อมูลสมาชิกล่าสุด 10 คน
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 2 แฟ้มคือ
/cgi-bin/member01.mdb และ /aspmbrls.asp
1. /aspmbrls.asp ทำหน้าที่อ่านข้อมูลสมาชิก 10 คนสุดท้ายมาแสดง เท่านั้น
2. /cgi-bin/member01.mdb แฟ้มที่ให้ข้อมูล เพื่อนำไปทำรายงาน ของสมาชิก
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
Source code ของโปรแกรมแสดงข้อมูลสมาชิก /aspmbrls.asp
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
Set rec = Server.CreateObject("ADODB.Recordset")
sql = "select * from member order by member.id DESC;"
rec.Open sql, thaialldbaccess97
%>
<html><head><title>รายชื่อสมาชิกใหม่ 10 คน</title></head>
<body bgcolor="#ffffdd"><font face="microsoft sans serif">
รายชื่อสมาชิกใหม่ 10 คน (Display last 10 members)<hr>
<ul>
<%
i = 1
if Not rec.eof then rec.MoveFirst
do while Not rec.eof and i <= 10     
   response.write( "<b>รหัสสมาชิก</b> : " & rec("id") &"<br>")   
   response.write( "<b>ชื่อสมาชิก</b> : " & rec("name") &"<br>")
   response.write( "<b>E-mail</b> : " & rec("email") &"<br>")
   response.write( "<b>ชื่อเว็บ</b> : " & rec("webname") &"<br>")
   response.write( "<b>ที่อยู่เว็บ</b> : " & rec("address") &"<br>")
   response.write( "<b>คำอธิบายเว็บ</b> : " & rec("describ") &"<hr>")
   rec.MoveNext
   i = i + 1
loop
%>
</ul>
</body></html>
Click ที่นี่ เพื่อแสดงข้อมูลสมาชิกล่าสุด 10 คน
ดูเฉพาะ Source code เท่านั้น

การนับระเบียนในแฟ้ม
หัวข้อนี้ง่ายไม่ serious ใช้เพื่อนับระเบียนในแฟ้ม
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
Source code ของโปรแกรมแสดงข้อมูลสมาชิก /aspmbrct.asp
<html><title>Total record</title>
<body bgcolor="#ffffdd">
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
set rec = Server.CreateObject("ADODB.Recordset")
sql = "select * from member order by member.id"
rec.Open sql, thaialldbaccess97
totrec=rec.recordcount
response.write "<br>แปลกครับ http://www.learnasp.com/learn/dbcount.asp ก็ใช้แบบ reccount ได้ แต่ลองแล้ว ไม่ได้<br>"
response.write "Total record : " & rec.recordcount & "<hr>"
response.write "จึงต้องใช้วิธีนับแบบข้างล่างนี้แทน ทดสอบที่ webhostme.com<br>"
cntrec = 0
if Not rec.eof then rec.MoveFirst
do while Not rec.eof
  cntrec = cntrec + 1
  rec.movenext
loop
response.write  "Total record : " & cntrec
rec.close
set rec=nothing
%>
</body></html>
Click ที่นี่ เพื่อแสดงจำนวนระเบียนในแฟ้ม
ดูเฉพาะ Source code เท่านั้น

แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. ให้ copy แฟ้ม และโปรแกรม ไปทดสอบในเว็บของท่าน
  2. สร้างแฟ้มของท่านขึ้นมาใช้เอง และปรับรูปแบบของ โปรแกรม เพิ่ม ลบ และแก้ไขในแบบที่ท่านพอใจ
  3. สร้างรายงานที่เลือกข้อมูลสมาชิกเป็นหน้า หน้าละ 30 คนได้
  4. สร้างส่วนแสดงรายชื่อสมาชิกให้ยืดหยุ่น กว่านี้ เช่น เลือกหน้า หรือช่วงรหัสได้ เป็นต้น
  5. ให้รวมโปรแกรม เพิ่ม ลบ แก้ไข เป็นโปรแกรม asp โปรแกรมเดียว

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