วันพฤหัสบดีที่ 16 กุมภาพันธ์ พ.ศ. 2555

นำข้อมูลจาก MySQL Database มาแสดงใน Select(List/Menu) ด้วยโปรแกรมDreamweaver (PHP+MySQL)


        หลังจากที่เคยได้สอนแสดงข้อมูลและแบ่งหน้าข้อมูลจากฐานข้อมูล MySQLในตาราง (Table) มาแล้ว คราวนี้จะสอนท่านดึงข้อมูลมาแสดงใน  Select(List/Menu) หรือ combo box บ้างครับ ส่วนมากแล้วข้อมูลที่ถูกนำมาแสดงใน Select(List/Menu) มีลักษณะเป็นตัวเลือกที่กำหนดไว้ให้แล้ว ซึ่งจะบังคับไม่ให้เราระบุข้อมูลที่นอกเหนือจากนี้ และข้อมูลที่ผมจะนำมาแสดงใน Select(List/Menu) ที่ผมสอนคือ หมวดสินค้า ครับ ซึ่งเราจะเห็นภาพวิธีการใช้งานได้ชัดเจนยิ่งขึ้นในบทความหน้าครับ ในเรื่องของการเพิ่มข้อมูลสินค้า โดยเราจะนำ Select(List/Menu) แสดงหมวดหมู่สินค้า นี้ไปใช้ครับ

+++ สร้างการเชื่อมต่อกับฐานข้อมูลก่อนครับ ทำตามในบทความนี้เลย --> สร้างการเชื่อมต่อฐานข้อมูล MySQL ด้วยDreamweaver
 จากนั้นให้ สร้าง Recordset เพื่อร้องขอข้อมูลในเทเบิลหมวดหมู่สินค้า (tb_category) ก่อนครับ ดังรูป
1 คลิกที่แท็บ BINDINGS 
2 เลือกตัวเลือกแรก คือ Recordset (Query)
+++ เมื่อหน้าต่าง Recordset แสดงขึ้นมาดังรูป

1 ตั้งชื่อให้กับ recordset ของเรา ผมตั้งชื่อว่า showcate เพราะต้องการข้อมูลจากเทเบิลหมวดสินค้าครับ
2 เลือกคำสั่งการเชื่อมต่อกับฐานข้อมูล ศึกษาข้อมูลได้จากที่นี่ --> สร้างการเชื่อมต่อฐานข้อมูล MySQL ด้วยDreamweaver
3 เลือกเทเบิล ซึ่งผมเลือก tb_category ซึ่งเป็นเทเบิลที่ใช้เก็บข้อมูลของหมวดสินค้าครับ
4 เลือกฟิลด์ทั้งหมด (ในที่นี้มีเพียง 2 ฟิลด์เท่านั้นคือ cg_idและcg_name)
5 เรียงข้อมูลจากฟิลด์ชื่อ cg_name โดยเรียกตามตัวอักษรน้อยไปหามาก Ascending

+++ ในแท็บ BINDINGS จะมีข้อมูล Recordset มาแสดงดังรูปข้างล่าง
+++ จากนั้นให้สร้างไฟล์ขึ้นมา 1 ไฟล์ ตั้งชื่อว่า listmenu.php ให้ทำตามรูปข้างล่างเลยครับ

+++ และให้ทำตามขั้นตอนด้านล่างนี้เลยครับ
1 คลิกที่ Select(List/Menu)
2 ตั้งชื่อให้ Select(List/Menu) ของคุณซะ
3 คลิกที่ Dynamic
4 คลิกที่ Label แรก แล้วพิมพ์ "–เลือกหมวด-" ส่วนค่าใน Value ให้ปล่อยว่างไว้
5 เลือก Recordset ของเราครับ ซึ่งผมเลือก showcate ที่ได้สร้างไปเมื่อกี้ครับ
6 เลือกข้อมูลไปแสดงใน Select(List/Menu) ซึ่งจะมีอยู่ 2 ส่วน คือ Values และ Labels
7 คลิก OK

+++ ไปที่ไฟล์ listmenu.php คลิกที่ Code แล้วเพิ่มคำสั่ง mysql_query(‘SET NAMES UTF8’) เพื่อรองรับการแสดงผลภาษาไทย ในบรรทัดต่อจากคำสั่ง mysql_select_db ดังรูป
+++ จากนั้นให้RUNไฟล์ โดยกดที่ปุ่ม F12 แล้วจะได้ผลลัพธุ์ดังรูป

15 ความคิดเห็น :

  1. ขอบคุณครับมาแบ่งปันความรู้อีกแล้วววววว

    อยากให้สอนแบบว่าเลือกตามหมวดแล้วก็แสดงสินค้าตามหมวดหมู่ครับ:)

    ตอบลบ
    คำตอบ
    1. @deksp จะเก็บเอาไว้พิจารณาครับ :) แต่ผมว่า มันทำไม่ยากเลยนะครับ
      แค่แสดงหมวดสินค้าก่อน เมื่อเราเลือกหมวดสินค้าใดๆ ก็ให้ส่ง id ของหมวดสินค้านั้นเป็นเงื่อนไขไปคิวรี่ข้อมูลจากในเทเบิลสินค้ามาแสดงครับ โดยใช้คำสั่ง sql เช่น SELECT * FROM products WHERE id_หมวดสินค้า=idหมวดสินค้าที่เลือก

      ลบ
  2. ไม่ระบุชื่อ17 พฤษภาคม 2555 22:49

    ขอถามหน่อยนะครับ ..คือว่า ผม ทำตาราง "สินค้า" แยก กับ "หมวดหมู่"
    เวลา Add รายการสินค้า ผมจะให้เก็บ ID ของหมวดหมู่ แล้วทีนี้ ผมหน้า Show รายการสินค้า ผม recordset ทั้ง product และ category แต่ที่ผมยัง งง อยู่ก็คือ จะผูก 2 ตารางนี้ยังไง? คือ หมวดหมู่สินค้ามันแสดงเป็น ID ของ ตัวหมวดหมู่ แต่ผมอยากให้มันแสดงเป้นชื่อหมวดหมู่ อ่ะครับ...

    ตอบลบ
  3. @bggaro
    Join Table ไม่ยากครับ แต่จะต้องเขียนคำสั่ง sql เพิ่มเองนิดหน่อยครับ โดยไปที่ Advanced.. ของหน้าต่าง recordset
    ลองศึกษาจากเว็บนี้ดูนะครับ Creating Recordsets with Joins
    เดี๋ยวถ้าว่างๆผมจะเขียนบทความ เรื่องการผูกเทเบิลในโปรแกรมดรีม ให้อ่านกันนะครับ

    ตอบลบ
  4. ไม่ระบุชื่อ18 พฤษภาคม 2555 09:07

    ขอบคุณครับ ^^

    ตอบลบ
  5. ไม่ระบุชื่อ27 สิงหาคม 2556 14:39

    ใส่ mysql_query(‘SET NAMES UTF8’) แล้ว Error คับ

    ตอบลบ
    คำตอบ
    1. ไม่น่าErrorนะครับ พิมพ์ mysql_query('SET NAMES UTF8'); นะครับ
      ลอง mysql_query('SET NAMES UTF8') or die(mysql_error()); เพื่อดูปัญหาครับ

      ลบ
  6. ขอบคุณมากคร้า เป็นประโยชน์มากค๊

    ตอบลบ
    คำตอบ
    1. ด้วยความยินดีค๊บ ^__^

      ลบ
  7. ถ้าเราเลือกคำว่าตุ๊กตากบ คือจะให้มันแสดงออกมา ในรายการที่เราคลิก เขียนอย่างไรคะ

    ตอบลบ
  8. สร้าง list menu แต่มองไม่เห็น recdcordset ที่สร้างไว้ครับ

    ตอบลบ
  9. เมื่อเราเลือกข้อมูลใน list แล้ว อยากให้ลิงค์ไปหน้าใหม่ค่ะ เช่น ถ้าเลือกตุ๊กตากบ แล้วให้ลิงค์ไปเพจใหม่ ต้องเขียนยังไงต่อคะ

    ตอบลบ
  10. อยากให้สอนแบบว่าเลือกตามหมวดแล้ว ก็กดแสดงสินค้าตามหมวดหมู่ครับ:)

    ตอบลบ