การคิดราคาสินค้าแบบแพ็ก หลักการเบื้องต้นก็คือ 1. คิดราคาแบบเป็นแพ็ก $pack_buy = floor($customer_buy / $product_xx_pack_qty); //ปัดเศษทิ้ง $total_pack_buy_price = $pack_buy * $product_xx_pack_price;//คิดราคาแบบ pack ใน PHP เราจะใช้ฟังก์ชั่น floor() เพื่อปัดเศษทิ้ง เอาเฉพาะที่ครบจำนวนแพ็กเพื่อไปคูณกับราคาต่อแพ็ก แต่ถ้าไม่ครบก็จะนำไปคำนวณราคาต่อแพ็กแล้วได้ 0 2. หาราคาต่อชิ้น ที่เหลือจากการหารเพื่อหาแบบแพ็ก $piece_buy = $customer_buy % $product_xx_pack_qty;//หารแบบเอาเศษ $piece_price = $piece_buy * $product_xx_price;// ราคาของส่วนที่เหลือจากแพ็ก แน่นอนว่าถ้าซื้อไม่ถึงแพ็ก ก็จะเป็นจำนวนชิ้นทั้งหมด แต่ถ้าซื้อครบแพ็กพอดี จำนวนชิ้น ก็จะเป็น 0 เพราะคิดราคาแบบแพ็กเท่านั้น แต่ถ้าซื้อเกินแพ็กเศษเท่าไหร่ก็เอาไปคูณกับราคาต่อชิ้น
สำหรับตัวอย่างนี้จะเป็นการ 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 ...