ผลลัพธ์ที่ได้ ปกติแล้วเมื่อเราใช้ PHP วนลูปข้อมูลจากฐานข้อมูล MySQL ด้วย while() ข้อมูลจะถูกดึงออกมาเรียงกัน และเราสามารถแบ่งข้อมูลในแนวนอนด้วย array_chunk() หรืออาจจะใช้วิธีหารเอาเศษ เพื่อเทียบดูว่าเมื่อไหร่จะขึ้น </tr><tr> หรือปิดเปิดบรรทัดใหม่ แต่ในกรณีแนวตั้ง หลังจากที่เราใช้ while() ลูปดึงข้อมูลมาแล้วนั้น ผมจะใช้วิธีการนับจำนวนอาร์เรย์ทั้งหมด แล้วเอามาหารตามจำนวนแถวที่ต้องการ เพื่อสร้างอาร์เรย์ชุดใหม่ ที่ได้จำนวนคอลัมน์ และลำดับของข้อมูลตามการจัดเรียงตารางแนวตั้งที่ต้องการ ซอร์สโค้ด PHP + PDO with MySQL <?php $user = 'tobedev'; $pass = 'dev.1234'; try { $dbh = new PDO('mysql:host=localhost:33065;dbname=tobedev_example', $user, $pass); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } $stm = $dbh->prepare("SELECT name, price FROM tb_product LIMIT 14"); $stm->execute(); $no = 1; $data = array(); while($result =
สำหรับตัวอย่างนี้จะเป็นการ 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