26/01/2560

การดึงข้อมูลจากSQL มาแสดงแบบReal-Time ภาษาPHP

ในบทความนี้จะใช้วิธี Ajax จาก Database หรือ MySQL Database ซึ่งจะอาศัยเทคนิคการเขียน jQuery ร่วมกับ  Ajax ส่วนข้อมูลนั้นจะใช้ JSON เป็นตัวรับ-ส่งข้อมูล (Real-Time คือ วิธีการโหลดข้อมูลโดยที่ไม่ต้องทำการ Refresh ข้อมูล )

ตัวอย่างการแสดงข้อมูล
โครงสร้างของฐาน



connect.php (PHP) เป็นไฟล์สำหรับอ่านข้อมูลจาก Database โดยไฟล์นี้จะถูกเรียกใช้โดย Ajax



บรรทัดที่2 เป็นการเชื่อมต่อกับ Database  mysql_connect("ชื่อurl:ของDatabase","username","password") 
สำหรับ or die(mysql_error()) เป็นตัวเช็คว่าเชื่อมต่อDatabaseได้หรือไม่

บรรทัดที่3  mysql_select_db("ชื่อDatabaseที่ต้องการเรียก")

บรรทัดที่4 เป็นการกำหนดว่าจะดึงข้อมูลมาโชว์จำนวณที่แถว เช่น $Per_Page = 20; //คือการดึงข้อมูลมาโชว์จำนวณ 20 แถว

บรรทัดที่5 "SELECT * FROM ccn_loginhistory // เลือกตารางที่ต้องการใช้งาน
- WHERE 1 ORDER BY login_id DESC // เป็นการกำหนดให้ Login_id เรียงลำดับจากมากไปน้อย โดยคำสั่ง DESC 
- LIMIT $Per_Page // คือคำสั่งการกำหนดจำนวณข้อมูลที่จะโชว์ในบรรทัดที่4

บรรทัดที่ 10- 18 เป็นการดึงข้อมูลจากDatabase ในรูปแบบArray 

บรรทัดที่20 เป็นการแสดงข้อมูลที่ได้จากDatabase


เมื่อทดสอบเรียกไฟล์โดยตรง จะได้ข้อมูลในรูปแบบของ JSON

index.php (PHP) ไฟล์หลักของเว็บ มีหน้าที่ดึงข้อมูลมาแสดงแบบ Realtime


- จะใช้ JavaScript และ jQuery ทำงานเป็น Loop โดยทิ้งระยะห่าง 1 วินาที ในการที่จะไปโหลดข้อมูลจาก Server โดยใช้ Ajax ทำงานอยู่เบื้องหลัง ซึ่งวิธีนี้ผู้ใช้ไม่ต้องทำการ Refresh หน้าจอ เพียงแต่เปิดหน้าจอทิ้งไว้เท่านั้น และเมื่อมีข้อมูลใหม่ ๆ ตัว Ajax ก็จะไปดึงข้อมูลจาก Server มาแสดงในหน้าจอ 
- หลักการก็คือไฟล์นี้จะใช้ jQuery ดึงข้อมูลแบบ Ajax จากไฟล์ connect.php จากนั้นเมื่อได้ข้อมูลกลับมาที่อยู่ในรูปแบบของ JSON ก็จะทำการ Loop ค่าและแสดงค่าใน Table

- setInterval(getDataFromDb, 1000); // 1000 = 1 วินาที เช่น ถ้าต้องการให้Refresh ทุกๆ 10 วินาที จะตั้งเป็น 10000 เป็นต้น

ส่วนนี้เป็นการสร้างตารางและตกแต่งหน้าตา

เมื่อเรียกไฟล์ที่เขียนเสร็จแล้วจะได้ดังรูป



เมื่อมีข้อมูลเพิ่มเข้ามา

ข้อมูลจะแสดงหน้าเว็บอัตโนมัติ          



ไม่มีความคิดเห็น:

แสดงความคิดเห็น