คำสั่ง SELECT ในการ Query |
|
ถ้าสำหรับคนที่ติดตามผมมาตั้งแต่บทความแรกในหมวดหมู่นี้ ซึ่งจะได้ฐานข้อมูลและตารางข้อมูลที่เหมือนกับผม (ถ้าใครอยากศึกษาตามก็ขอให้ย้อนกลับไปบทความแรกก่อนนะครับ) ที่ผมเกริ่นมานี้ก็เพื่อที่จะให้คนที่มีฐาน ข้อมูลและตารางตามที่ผมได้สร้างไว้ทำการดาวน์โหลดไฟล์ด้านล่างของผมครับที่ชื่อว่า sql_insert.sql แล้วนำไป import เข้าฐานข้อมูลครับ เมื่อเรามีข้อมูลเรียบร้อยแล้ว ผมจะเริ่มตรงส่วนหน้าจอ (เฉพาะโครงร่างก่อนยังไม่ใช่ส่วนทั้งหมดนะครับ) ที่จะใช้ในการแสดงสินค้าทั้งหมดก่อนเลยครับ ซึ่งผมจะสร้างดังนี้ (โค้ดทั้งหมดสามารถดาวน์โหลดได้ แต่ถ้าจะให้ดีก็ ทำตามทีละลำดับดีกว่าครับ) 02. < head >< title >วิธี SELECT ค่าข้อมูลจากฐานข้อมูลมาแสดงในหน้าจอ</ title ></ head > 03. < body > 04. < table width = "600" border = "1" > 05. < tr > 06. < th >ลำดับ</ th > 07. < th >ชื่อสินค้า</ th > 08. < th >ราคา</ th > 09. < th >จำนวน</ th > 10. </ tr > 11. < tr > 12. < td align = "center" >1</ td > 13. < td >โครงร่าง</ td > 14. < td align = "right" >0</ td > 15. < td align = "center" >0</ td > 16. </ tr > 17. </ table > 18. </ body > 19. </ html > จากโครงร่างหน้าจอด้านบนจะได้ผลลัพธ์ดังนี้ จากนั้นให้เราทำการเชื่อมต่อฐานข้อมูลโดยใช้ฟังก์ชัน mysql_connect() ครับ รวมไปถึงใช้ฟังก์ชัน mysql_select_db() ในการเลือกฐานข้อมูลที่เราต้องการใช้งาน (ในที่นี้คือ mysql_php) ให้ทำการแทรกโค้ดด้านล่างนี้ไว้ที่ด้านบนสุดของไฟล์เลยครับ 02. $host = "localhost" ; 03. $user = "root" ; 04. $pass = "" ; 05. $dbname = "mysql_php" ; 06. mysql_connect( $host , $user , $pass ); 07. mysql_select_db( $dbname ); 08. 09. // ส่วนนี้เราจะต้องกำหนดไว้เลยว่าเราต้องการคิวรี่โดยใช้ encode เป็น UTF8 ไม่เช่นนั้นผลลัพธ์จะเป็น "?" ถ้าข้อมูลเป็นภาษาไทย 10. mysql_query( "SET NAMES UTF8" ); 11. ?> เพียงเท่านี้ก็จะสามารถเข้าใช้งานฐานข้อมูล mysql_php ได้แล้ว หลังจากนั้นให้ผมจะใช้คำสั่ง SQL เพื่อทำการ query ข้อมูลจากตาราง tbl_product ดังนี้ (ไว้ต่อจากตัวอย่างด้านบน) 1. <?php 2. $sql = "SELECT * FROM tbl_product ORDER BY id ASC" ; 3. $rs = mysql_query( $sql ); 4. ?> มันจะคืนค่ามาเป็น resource เรคอร์ดทั้งหมดที่คิวรี่ได้นั่นแหละครับ ซึ่งพอได้ resource เหล่านี้มาแล้ว เราก็สามารถทำการวนลูปดึงค่าข้อมูลแต่ละเรคอร์ดออกมาแสดงได้แล้ว ซึ่งต่อจากนี้ให้เราทำการแก้ไขโค้ด HTML เป็นดังนี้ครับ 01. <html> 02. <head><title>วิธี SELECT ค่าข้อมูลจากฐานข้อมูลมาแสดงในหน้าจอ</title></head> 03. <body> 04. <table width= "600" border= "1" > 05. <tr> 06. <th>ลำดับ</th> 07. <th>ชื่อสินค้า</th> 08. <th>ราคา</th> 09. <th>จำนวน</th> 10. </tr> 11. <?php 12. while ( $row = mysql_fetch_array( $rs )) { 13. echo "<tr>" . 14. "<td align='center'>" . $row [ 'id' ] . "</td>" . 15. "<td>" . $row [ 'prod_name' ] . "</td>" . 16. "<td align='right'>" . $row [ 'price' ] . "</td>" . 17. "<td align='center'>" . $row [ 'quantity' ] . "</td>" . 18. "</tr>" ; 19. } 20. ?> 21. </table> 22. </body> 23. </html> ซึ่งแก้ไขให้มันทำการวนลูป resource ที่ได้จากการคิวรี่ไปยังฐานข้อมูลออกมาแสดงทีละแถว โดยเราใช้ฟังก์ชัน mysql_fetch_array() เพื่อดึงข้อมูลทีละเรคอร์ดมายังตัวแปร $row (จะได้รับข้อมูลแบบอะเรย์) โดยเราสามารถอ้างอิง index ของอะเรย์ได้ทั้งสองแบบนั่นก็คือแบบ associative array และ numeric array (ในตัวอย่างผมใช้การอ้างอิง index แบบ associative array ครับ ซึ่ง index ของอะเรย์จะเป็นชื่อฟิลด์ของตารางที่เราดึงข้อมูลมา) เพียงเท่านี้เราก็จะได้ข้อมูลออกมาแสดงบนหน้าเว็บแล้วครับ ดังรูป |
เอส
|
|