ตัวอย่างการเพิ่มอีเวนต์ On Change ให้กับ DatePicker เพื่อส่งค่าวันที่ไปประมวลผลใน Controller ผ่าน AJAX เพื่อหาอายุตามวันที่เลือก เพิ่มฟังก์ชั่นที่ไฟล์ application/helpers/ci_utilities_helper.php function ci_date_diff($start_date, $end_date = ''){ if($end_date == ''){ $end_date = date('Y-m-d'); } $datetime1 = new DateTime($start_date); $datetime2 = new DateTime($end_date); $interval = $datetime1->diff($datetime2); $diff = array(); $diff['year'] = $interval->format('%y'); $diff['month'] = $interval->format('%m'); $diff['day'] = $interval->format('%d'); $diff['hour'] = $interval->format('%h'); $diff['min'] = $interval->format('%i'); $diff['second'] = $interval->format('%s'); return $diff; } เพิ่มฟังก์ชั่นใน Controller ของโมดูลที่เราสร้างขึ้นมา เช่น application/modules/test/controllers/Product.php publ
สำหรับตัวอย่างนี้จะเป็นการ 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