วันอาทิตย์ที่ 10 ตุลาคม พ.ศ. 2553

ระบบข้อมูลส่วนตัวของสมาชิก ตอนที่ 3 การเขียนคำสั่งเพื่อ Update ข้อมูลในฐานข้อมูล MySQL ของสมาชิก (ตอนจบ)

บทความตอนนี้เป็นบทความตอนสุดท้ายของระบบข้อมูลส่วนตัวของสมาชิก ผมจะสอนเขียนคำสั่ง PHP สำหรับ Update ข้อมูลในฐานข้อมูล db_exshop ของเทเบิล tb_member ผลลัพธ์ของโปรแกรมจะเป็นดังนี้คับ
หากสมาชิกต้องการแก้ไขข้อมูลเช่น ชื่อ-สกุล , เบอร์โทร เป็นต้น สามารถกรอกข้อมูลใหม่หรือเพิ่มเติมได้ จากนั้นกดที่ปุ่ม แก้ไข ดังรูป

จะได้ผลลัพธ์ ดังรูป


หรือหากมีกรอกรหัสผ่านใหม่แต่กรอกทั้งสองช่องไม่ตรงกัน จะแสดงผลลัพธ์ดังรูป


เรามาเริ่มลงมือเขียนคำสั่งกันเลยคับ


1.ให้ท่านกลับที่File mbedit.php แล้วแก้ไขตรง tag form ตรงส่วนของ action ให้เป็นดังรูป


2. จากนั้นให้สร้างไฟล์ใหม่ขึ้นมา ตั้งชื่อ mbedit_save.php ลบคำสั่งhtmlออกให้หมดแล้วพิมพ์ Code PHP เหล่านี้ลงไปคับ


บรรทัดที่ 2 กำหนดการทำงานของsessionของหน้านี้ โดยเราจะส่งตัวแปร $_SESSION[“ss_login”]เป็นเงือนไขในการแก้ไขข้อมูลของสมาชิก
บรรทัดที่3 ดึงไฟล์คำสั่ง Connect Database ที่สร้างไว้ในไฟล์ config.php มาใช้งาน
บรรทัดที่4 ตรวจสอบการส่งร้อง(Request)ขอจากไคลเอนท์(Client) โดยเช็คParameter Request ที่ส่งมาว่าเป็นแบบPOSTหรือไม่
บรรทัดที่5-9 รับค่าParameter Request จากไฟล์ mbedit.php มาเก็บไว้ในตัวแปร เพื่อง่ายต่อการอ้างอิงถึงต่อการนำไปใช้งาน
บรรทัดที่10 ประกาศตัวแปร SET ให้เป็นค่าว่างไว้ก่อน เพราะจะใช้เก็บคำสั่ง SET ของ คำสั่ง UPDATE (MySQL) 
บรรทัดที่11ตรวจสอบรหัสผ่านใหม่ ว่ามีการกรอกหรือไม่ และบรรทัดที่12ตรวจเช็คอีกว่ารหัสผ่านทั้งสองช่องตรงกันหรือไม่
บรรทัดที่13 นำตัวแปรSETรับคำสั่งMySQL หากรหัสผ่านทั้งสองช่องตรงกัน หากรหัสผ่านทั้งสองช่องไม่ตรงกัน (บรรทัดที่14) ให้แสดงข้อความ(บรรทัดที่15) แล้วสั่งให้หยุดการทำงานของสคริปต์ทันที(บรรทัดที่16) เพื่อไม่ให้มันทำงานในคำสั่งถัดลงมาอีก
บรรทัดที่22 หากมีการตรวจสอบว่าผ่านจากเงื่อนไขทั้งหมดที่กล่าวข้างต้น ข้อมูลจะถูกส่งไปในฐานข้อมูล เพื่อแก้ไขข้อมูลเดิม ด้วย Method Execute

2 ความคิดเห็น :

  1. ไม่ระบุชื่อ12 มกราคม 2557 เวลา 14:19

    ทำไมคำว่าแก้ไขข้อมูลเรียบร้อยแล้วไม่ขึ้น
    แก้ไขข้อมูลแล้วแต่ในฐานข้อมูลยังไม่เปลี่ยนเลย

    ตอบลบ
    คำตอบ
    1. สงสัยคำสั่งผิดครับ ลองเช็คคำสั่ง sql ดูให้ดีครับ ส่วนมากจะกำหนดชื่อฟิลด์ผิดครับ

      ลบ