ประกาศค่าตัวแปรวันที่ $results = array(); $all_date = array( '2017-10-31', '2017-12-29','2017-12-30','2017-12-31','2018-01-01','2018-01-02', '2018-03-12', '2018-03-13', '2018-03-14', '2018-03-15', '2018-02-28', '2018-03-01', '2018-03-02', '2018-03-07', '2018-03-09', '2019-03-20', '2019-03-21' ); ผลลัพธ์ที่ต้องการ สร้างตัวแปรเดือนแบบย่อ $short_month = array('01' => 'ม.ค.', '02' => 'ก.พ.', '03' => 'มี.ค.', '04' => 'เม.ย.', '10' => 'ต.ค.', '12' => 'ธ.ค.'); 1. เรียงวันที่จากน้อยไปมากเพื่อวนลูป sort($all_date); 2. นับจำนวนวัน เพื่อใช้ตรวจสอบกรณีต่อเนื่องกันทั้งหมด $num_date = count($all_date); 3. ตรวจสอบว่า วันแรก และวันสุดท้าย ห่างกันเท่ากันหรือไม่ ถ้าเท่ากัน แสดงว่าต่อเนื่องทั้งห
สำหรับตัวอย่างนี้จะเป็นการ JOIN ตาราง 2 ตาราง 1. tb_reject_hd 2. tb_reject_desc ซึ่งจะเชื่อมกันด้วยฟิลด์ docno จะเห็นว่าเราสามารถคิวรี่เรียกข้อมูลออกมาได้ตอนที่ยังไม่ใส่ ORDER BY แต่เมื่อใส่ ORDER BY เข้าไป จะหมุนค้างจนหน้าเว็บหยุดทำงาน จากนั้นก็ลองเพิ่ม INDEX ให้กับฟิลด์ docno ในตาราง tb_reject_desc ซึ่งในตัวอย่างนี้จะสร้างตารางใหม่ขึ้นมาจากตารางเดิม เปลี่ยนชื่อเป็น tb_reject_desc_with_index และทำการเพิ่ม INDEX KEY เข้าไป เมื่อทดสอบคิวรี่แบบมี ORDER BY จะเห็นว่าสามารถแสดงผลได้ทันที จากการสังเกตตัวเลขเวลาในการประมวลผล จะเห็นได้ว่าแบบไม่ใช้ ORDER BY จะทำงานเร็วกว่า แต่ในการทำงานส่วนใหญ่ก็มักจะต้องใช้ ORDER BY อย่างหลีกเลี่ยงไม่ได้ เช่นกรณีค้นหา แบบเรียงลำดับ ตัวอย่างโค้ดคิวรี่ข้อมูลจากตารางที่ Add Index Key แล้ว <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Add Index Key</title> </head> <body> <h2>ORDER BY with INDE