ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก มิถุนายน, 2019

Stack Overflow : ตอน จัดเรียง Value ของ Select แบบ Multiple ตามลำดับการเลือกกันเถอะ (Select2)

"Prevent multiple select element from automatically sorting the value assigned to it basis the order of the indexes in the options" เรื่องของเรื่องมีอยู่ว่า...เมื่อเราใช้ Select2 ในการสร้าง Drop-down List และเวลาเลือก option แต่ละตัวเรียบร้อย พอส่งค่าไปใช้งาน มันก็จะเรียงจากบนลงล่าง option ไหนมาก่อน value ก็ไปก่อน แต่ทีนี้เราอยากให้มันเรียงตามลำดับการคลิก จะทำยังไง ก็เลยค้นด้วยคำง่ายๆไปเลย "select2 multiple value not sort" แล้วก็เล็งกระทู้ของ StackOverflow.Com แล้วก็ได้กระทู้นี้ https://stackoverflow.com/questions/21875658/prevent-multiple-select-element-from-automatically-sorting-the-value-assigned-to พอลองทดสอบดู ก็ได้ผลลัพธ์เหมือนดั่งที่ใจเราต้องการจริงๆ ก็เลยจัดการดัดแปลงนิดๆหน่อยๆ ได้ดังนี้ function getSelect2MultipleSortValue(elem_id){     // 'data' brings the unordered list, while 'val' does not     var data = $('#' + elem_id).select2('data');     // Push each item into an array     var final...

jQuery ความแตกต่างระหว่า .data() กับ .attr('data-xxx')

"Adding data attribute to DOM" สำหรับการสร้างแอตทริวต์ในอีเลเมนต์ต่างๆ เพื่อพักข้อมูลไว้นั้น เรานิยมใช้ชื่อ data-xxxxx เช่น ต้องการเก็บ id ไว้ก็สร้างแอตทริบิวต์ data-id="1234" ซึ่งสามารถใช้คำสั่งได้ 2 แบบ $('div').data('id', '1234'); และ $('div').attr('data-id', '1234');  .data('xxxx') กับ .attr('data-xxx') ก็คือ .attr() จะแสดงแอตทริบิวต์ที่เพิ่มเข้าไป หรือเปลี่ยนแปลงไป ในโครงสร้าง HTML ให้เห็นด้วย สังเกตว่าในรูปแท็ก <p> จะปรากฏแอตทริบิวต์ data-info แสดงออกมาด้วย ที่มา : https://stackoverflow.com/questions/14935191/adding-data-attribute-to-dom สนับสนุนค่ากาแฟผู้เขียนได้ที่ PHP  CI  MANIA   - PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม สนใจสั่งซื้อราคาสุดคุ้ม http://fastcoding.phpcodemania.com/

PHP CI MANIA : ตอนที่ 11 วิธีสร้างแบบฟอร์มบันทึกข้อมูลแบบ Master - Detail เพิ่ม/ลบ/แก้ไข รายการย่อยได้

การสร้างแบบฟอร์มแบบ Master & Detail ก็คือการทำงานกับตาราง 2 ตาราง โดยที่จะมีการบันทึกข้อมูลหลักส่วนที่ 1 และมีแบบฟอร์มสำหรับบันทึกข้อมูลรายการ ในส่วนที่ 2 ดังภาพ ส่วนของการตั้งค่าจะอยู่ในแท็ป " ตั้งค่า" ส่วนที่ 4 ด้านล่างสุด "ข้อมูลตารางรายการ (Detail)" 1. เลือกตารางที่จะใช้บันทึกรายการ เช่นหน้าเว็บนี้คือการบันทึกประวัติ Resume ดังนั้นก็จะมีตารางเก็บผลงานต่างๆ นั่นก็คือตาราง tb_portfolio ที่เลือกในภาพ 2. จะปรากฏข้อมูลฟิลด์ของตารางที่เลือกเพิ่มมาด้านล่าง 3. ดูในส่วนของตารางหลัก (Master) ใน tb_resume จะมีฟิลด์ที่เป็น Primary Key ชื่อว่า resume_id ดังที่เลือกไว้ในภาพ 4. จากนั้นก็ย้ายมาด้านตารางรายการ (Detail) เราจะต้องเลือก Foreign Key หรือง่ายๆก็คือ เลือกฟิลด์ที่เราจะเอาไอดีของตารางหลัก มาใส่อ้างอิงในแต่ละรายการนั่นเอง 5. หลังจากนั้นก็กำหนดรูปแบบช่อง INPUT เหมือนกับที่กำหนดให้ตารางหลัก ในบทที่ผ่านๆมา คือ ช่องวันที่ ช่องอัพโหลดไฟล์ ช่องตัวเลข หรือการ JOIN ต่างๆ 6. หลังจากนั้นให้คลิกสร้างไฟล์ Models, Views, JS และ Controller...

PHP CI MANIA : ตอนที่ 10 วิธีกำหนดค่าเริ่มต้น (Default Value) ให้กับช่องป้อนข้อมูลจาก SESSION/POST/GET

ไปที่แท็ป "ตั้งค่า" และเลื่อนลงมาในส่วนที่ 3 ตั้งค่าที่คอลัม "SOURCE (Add Form)" จะประกอบด้วยตัวเลือกดังนี้ Form Input จะเป็นการกำหนดตาม " ประเภทช่องป้อนข้อมูล " ใน ตอนที่ 7 URI Segment จะเป็นการดึงค่าใน URL หลัง /index.php ตามด้วยตัวเลขระบุลำดับที่ต้องการ  SESSION จะเป็นการดึงค่า SESSION ที่ล็อกอินมาใช้งาน  GET จะเป็นการดึงค่าใน URL (สำหรับ CodeIgniter จะไม่นิยมส่ง GET จะใช้ URI Segment ) POST จะเป็นการรับค่าจากการกด SUBMIT มายังหน้าแบบฟอร์มปัจจุบัน มาลองดูผลลัพธ์ทีละส่วนกันครับ 1. Form Input      จะกำหนดตาม " ประเภทช่องป้อนข้อมูล " ในตอนที่ 7 ในตัวอย่างนี้จะเลือก "ประเภทช่องป้อนข้อมูล" เป็นแบบบรรทัดเดียว  เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกเข้าไปที่หน้า "เพิ่มข้อมูลใหม่" จะได้ผลลัพธ์ดังนี้ 2. URI Segment      จะต้องกำหนดตำแหน่งของ URL ที่ต้องการดึงมาใช้งานด้วย ในตัวอย่างนี้คือเลข 4    เมื่อสร้างไฟล์ Views และ Controller เรียบร้อยแล้ว ให้คลิกเข้าไปที่หน้า ...

PHP Array การสลับตำแหน่ง Array ระหว่าง key => value แบบไม่ต้องพิมพ์ใหม่ ด้วย array_flip(), var_export()

จากรูปด้านล่างนี้ จะเห็นว่ามี key ที่ชื่อว่า image/jpeg สองบรรทัด ทำให้ value ด้านหลังทับกันเหลือเพียงแค่ jpg ตัวสุดท้าย แต่ jpeg บรรทัดก่อนหน้านั้นหายไป เนื่องจากการกำหนดชื่อ key ของอาร์เรย์ ต้องไม่เป็นชื่อซ้ำกัน ดังนั้น จึงจำเป็นที่จะต้องสลับตำแหน่งระหว่าง key และ value กลับด้านกัน ซึ่งฟังก์ชั่นที่ใช้ก็คือ array_flip() ผลลัพธ์เมื่อใช้ array_flip() จะเห็นว่าสามารถกลับด้านข้อมูลได้ แต่ทีนี้จะทำยังไงเพื่อเอามาแทนที่โค้ดเดิมได้ เพราะการ print_r() เป็นเพียงแค่การแสดงผลลัพธ์ออกมาให้เห็น แต่ไม่ได้อยู่ในรูปแบบของซอร์สโค้ด PHP  และพระเอกของงานนี้ก็คือ var_export() ซึ่งทุกท่านอาจจะเคยเห็นผ่านตากับฟังก์ชั่น var_dump() มาบ้าง ซึ่งเป็นการแสดงข้อมูลออกมาเหมือนกับ print_r() แต่มีรายละเอียดที่มากกว่า แต่ var_export() จะแตกต่างออกไป เพราะสามารถแสดงข้อมูลอาร์เรย์ออกมาในรูปแบบของซอร์สโค้ด PHP เพื่อคัดลอกนำไปใช้งานต่อได้เลย ทีนี้ก็ถึงเวลาที่เราต้องเขียนโค้ดเพื่อดูผลลัพธ์กันแล้ว 1. สลับค่าในตัวแปร $this->file_allow ด้วย array_flip()       ...

PHP CI MANIA [FQA] : Use of undefined constant กรณีสร้าง INPUT แบบหลายตัวเลือก

กรณีนี้จะเกิดขึ้นกับประเภทฟิลด์ ไม่ต้องกับ คีย์ หรือ value ที่เรากำหนดในการสร้างตัวเลือก เช่น ฟิลด์ เก็บค่าตัวเลข แต่สร้างคีย์/value เป็นตัวอักษร วิธีแก้ไขก็คือ กำหนด Data Type ของฟิลด์ให้ตรงกับที่ต้องการ หรือกำหนดคีย์/value ให้ตรงกับ Data Type ของฟิลด์นั้นๆ กลับสู่หน้าหลัก >> HOME [[ PHP CI MANIA | ลดเวลาเขียนโค้ด เพิ่มเวลาบริหารจัดการได้มากขึ้น | Webpage Generator by CodeIgniter Framework ]]

PHP CI MANIA : ตอนที่ 9 วิธีกำหนดเงื่อนไขค้นหา การแบ่งหน้า และการจัดเรียงลำดับในตารางข้อมูล

ไปที่แท็ป "ตั้งค่า" เลื่อนลงไปใน ส่วนที่ 4 "กำหนดการค้นหา / ประเภทช่องป้อนข้อมูล" กำหนดการค้นหาที่คอลัมน์ "กำหนดตัวเลือก สำหรับค้นหา"       จะปรากฏตัวเลือก 4 รายการ      1.   = ' คำค้นหา '  จะค้นหาแบบ ต้องตรงทุกตัวอักษร เช่นการค้น ไอดี รหัสเอกสาร จำนวนเงิน     2.   LIKE ' % คำค้นหา % '  จะค้นหารายการที่มีคำที่ต้องการ อยู่ในส่วนใดส่วนหนึ่ง ของฟิลด์นั้น     3.   LIKE ' คำค้นหา % '  จะค้นหารายการที่ ขึ้นต้น ด้วยคำที่ค้นหา     4.    LIKE ' % คำค้นหา '  จะค้นหารายการที่ ลงท้าย ด้วยคำที่ค้นหา หลังจากกำหนดฟิลด์ที่ต้องการเรียบร้อย ให้คลิกไปที่แท็ป " Views " ที่แท็ปย่อย " แสดงตารางรายการ " จะมีส่วนที่ให้ตั้งค่า 2 ส่วน คือ 1. ช่องให้กรอกจำนวนที่ต้องการแสดงต่อหน้า 2. ตัวเลือกสำหรับจัดเรียง ซึ่งจะ Default ตามชื่อฟิลด์ที่ใช้ค้นหา สามารถเพิ่มลดได้ตามต้องการ เมื่อกดปุ่มแสดงตัวอย่าง จะได้ผลลัพธ์ดังนี้ หลังจากที่กดสร้างไฟล์จนครบทุกไฟล์...

ค้นหาในเว็บไซต์

เนื้อเพลงที่ได้รับความนิยม ในรอบสัปดาห์

แจกโค้ด PHP : รวมลิงค์ แจกฟรี!! ตัวอย่างโปรเจ็กต์ ที่พัฒนาด้วย PHP

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ  และด้านล่างนี้ก็เป็น Source Code PHP ระบบต่างๆ ที่มีเหล่าผู้ใจดีแจกฟรี!! ให้นำไปลองใช้ลองศึกษากันครับ แจกฟรี  !! ตัวอย่างการ  PHP  Booking # จองห้องประชุม  ผ่านเว็บครับ http://www.thaicreate.com/php/forum/090558.html ระบบแบบสอบถาม https://www.thaicreate.com/php/forum/099342.html แจก code!! การทำประเมินออนไลน์มี ไว้สำหรับพัฒนาต่อยอด https://www.thaicreate.com/php/forum/102203.html แจกฟรี PHP CodeIgniter CMS ให้ทุกท่านได้ลอง (รองรับ Responsive) http://www.thaicreate.com/php/forum/122929.html โดย : https://www.cszcms.com/ แจก PHP : ระบบยืม-คืนเอกสาร (จากตัวอย่าง เอกสารข้อมูลวัตถุดิบสินค้า) http://www.thaicreate.com/php/forum/103428.html แจกระบบ PHP Shopping Cart ระบบตะกร้าสินค้า ระบบสั่งซื้อ มีระบบตัดสต๊อก, สั่งซื้อวัตถุดิบคงเหลือ ht...

PHP + Fullcalendar กับ MySQL

หลักการทำงาน เรียกข้อมูลจากตาราง tb_event ด้วยฟังก์ชั่นของ MySQLi ข้อมูลจากฐานข้อมูลจะถูกวนลูปเก็บไว้ใน $data และจะถูกส่งไปที่ Fullcalendar ด้วยการแปลงข้อมูลจาก PHP ให้อยู่ในรูปแบบ JSON อาร์เรย์ด้วยฟังก์ชั่น json_encode()

ระบบวัสดุคงเหลือ - การตีราคาสินค้าคงเหลือด้วยวิธีราคาทุน (Inventory Costs Method)

การตีราคาสินค้าคงเหลือด้วยวิธีราคาทุน (Inventory Costs Method) หลังจากได้อ่านบทความในเว็บต่างๆก็สรุปได้ดังนี้ 1. FIFO เข้าก่อน-ออกก่อน เหมาะสำหรับการตัดสต๊อกที่ใช้สำหรับของที่มีวันที่หมดอายุกำกับไว้ อาจจะเนื่องด้วยพนักงานสต๊อกจะต้องคอยเช็ควันที่หมดอายุบนสินค้าเสมอๆอยู่แล้ว 2. LIFO เข้าหลัง-ออกก่อน เหมาะสำหรับการตัดสต๊อกสินค้าที่ตกเทรนเร็วแบบคอมพิวเตอร์ หรือสินค้าเทคโนโลยีอื่นๆ ซึ่งส่วนใหญ่จะทำโปรโมชั่นมาล่อตาล่อใจให้ลูกค้าซื้อรุ่นใหม่ๆ ดังนั้นพนักงานก็ต้องตัดสต๊อกตัวที่ใหม่ที่สุดออกก่อน เพราะทิ้งไว้นานไปราคาทุน ณ ปัจจุบันจะไม่ตรงกับราคาที่ขายไป 3. Weighted Average ถัวเฉลี่ยน้ำหนัก เหมาะกับสินค้าที่ไม่มีวันหมดอายุกำกับ และราคาขึ้นลงไม่มากนัก (คอมพิวเตอร์หรือสินค้าเทคโนโลยีจะขึ้นลงทีเป็นหลักร้อยหลักพัน) ซึ่งเหมาะกับการนำมาใช้ทำสต๊อกวัสดุคงเหลือของสำนักงาน ปัญหาของการใช้ Weighted Average หรือการถัวเฉลี่ยราคาทุนต่อหน่วย จะมีอยู่ 2 รูปแบบ 1. แบบ Periodic Inventory เป็นการคิดราคาทุนถัวเฉลี่ยของสินค้าคงเหลือปลายงวด นั่นก็คือ บันทึกการรับเข้าด้วยราคาต่อหน่...

phpMyAdmin ขั้นตอนการกำหนด UNIQUE KEY ให้กับตาราง MySQL ที่ฟิลด์ต้องไม่ซ้ำกัน

ถ้าใช้เครื่องมือจัดการฐานข้อมูลด้วย phpMyAdmin การจะกำหนดให้ฟิลด์ที่มีค่าไม่ซ้ำกันเป็น UNIQUE KEY นั้นจะสามารถทำได้ดังต่อไปนี้ 1. คลิกที่แท็ป Structure เพื่อปรับแต่งโครงสร้างตาราง เลื่อนไปยังด้านล่าง จะมีส่วนของการกำหนด Indexes เราจะเพิ่มแก้ไขฟิลด์ให้เป็น PRIMARY หรือ UNIQUE ได้จากการกดปุ่ม Go 2. ตั้งชื่อ Index เลือกประเภทเป็น UNIQUE และระบุฟิลด์ที่ต้องการ จากนั้นก็กดปุ่ม GO 3. เมื่อการเพิ่ม UNIQUE เรียบร้อย จะพบรายการใหม่ขึ้นมาต่อท้าย PHP  CI  MANIA   - PHP Code Generator  โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    4 ,500    บาท http://fastcoding.phpcodemania.com

PHP CI MANIA : ตอนที่ 11 วิธีสร้างแบบฟอร์มบันทึกข้อมูลแบบ Master - Detail เพิ่ม/ลบ/แก้ไข รายการย่อยได้

การสร้างแบบฟอร์มแบบ Master & Detail ก็คือการทำงานกับตาราง 2 ตาราง โดยที่จะมีการบันทึกข้อมูลหลักส่วนที่ 1 และมีแบบฟอร์มสำหรับบันทึกข้อมูลรายการ ในส่วนที่ 2 ดังภาพ ส่วนของการตั้งค่าจะอยู่ในแท็ป " ตั้งค่า" ส่วนที่ 4 ด้านล่างสุด "ข้อมูลตารางรายการ (Detail)" 1. เลือกตารางที่จะใช้บันทึกรายการ เช่นหน้าเว็บนี้คือการบันทึกประวัติ Resume ดังนั้นก็จะมีตารางเก็บผลงานต่างๆ นั่นก็คือตาราง tb_portfolio ที่เลือกในภาพ 2. จะปรากฏข้อมูลฟิลด์ของตารางที่เลือกเพิ่มมาด้านล่าง 3. ดูในส่วนของตารางหลัก (Master) ใน tb_resume จะมีฟิลด์ที่เป็น Primary Key ชื่อว่า resume_id ดังที่เลือกไว้ในภาพ 4. จากนั้นก็ย้ายมาด้านตารางรายการ (Detail) เราจะต้องเลือก Foreign Key หรือง่ายๆก็คือ เลือกฟิลด์ที่เราจะเอาไอดีของตารางหลัก มาใส่อ้างอิงในแต่ละรายการนั่นเอง 5. หลังจากนั้นก็กำหนดรูปแบบช่อง INPUT เหมือนกับที่กำหนดให้ตารางหลัก ในบทที่ผ่านๆมา คือ ช่องวันที่ ช่องอัพโหลดไฟล์ ช่องตัวเลข หรือการ JOIN ต่างๆ 6. หลังจากนั้นให้คลิกสร้างไฟล์ Models, Views, JS และ Controller...

MySQL คำสั่ง SQL จัดเรียงคำตามตัวอักษร ภาษาไทย ในฟิลด์ที่กำหนด Collation เป็น utf-8

การจัดเรียงข้อมูลตามลำดับตัวอักษรไทย   CONVERT( name USING tis620 ) ASC การเรียงลำดับตัวอักษรแบบ tis-620 ในการเขียนโปรแกรม PHP เพื่อแสดงข้อมูลจากฐานข้อมูล MySQL การเขียนคำสั่ง SQL ให้จัดเรียงลำดับนั้น เราจะใช้ ORDER BY  และกำหนดฟิลด์ที่ต้องการจัดเรียงลำดับ เช่น ในตัวอย่างนี้จะเป็นการจัดเรียงตามลำดับตัวอักษรของชื่อเมนู นั่นก็คือฟิลด์ name นั่นเอง แต่ในขั้นตอนการสร้างฐานข้อมูลนั้น เราได้กำหนด Charset ของตารางและฟิลด์เป็นการจัดเรียง Collation แบบ utf-8 เอาไว้เพื่อให้รองรับภาษาแบบมาตรฐาน ดังนั้นเมื่อเขียนโปรแกรมสั่ง ORDER BY name ASC ก็จะมีการจัดเรียงที่จะให้คำที่มีสระนำหน้าอยู่หลัง ฮ. นกฮุก ไปเสียหมด จะเห็นว่าชื่อเมนูหรือสินค้าที่มี ข นำหน้าจะมาเป็นลำดับแรก ทั้งที่จริงๆแล้ว มีสินค้าที่เป็น ก อยู่หลายรายการ เพียงแต่ว่ามีสระนำหน้าอยู่เท่านั้นเอง จากรูปด้านบน จะมีรายการที่เป็น ก อยู่ 3 รายการ คือเมนู โกโก้ ต่างๆ แต่เพราะมีสระโอ นำหน้า จึงทำให้การจัดเรียงแบบ utf-8 ให้อยู่ในลำดับท้าย เพื่อแก้ไขปัญหานี้ การเขียนโปรแกรมเพื่อ ORDER BY จะต้...

CodeIgniter การกำหนดเงื่อนไขค้นหาในหน้า ตารางแสดงรายการ เพื่อให้การแสดงผล Pagination ทำงานถูกต้อง

การค้นหารายการในหน้า " ตารางแสดงรายการ " เราสามารถปรับแต่งส่วนของ การจัดเรียง ส่วนของการค้นหา เพิ่มเติมได้ที่ Model ที่ฟังก์ชั่น read() ซึ่งจะมีการ Query ด้วยกัน 3 ครั้ง คือ (1) นับจำนวนทั้งหมด (แบบไม่กำหนด WHERE) <= ปัจจุบันไม่ได้เอาไปแสดงผล (2) นับจำนวนที่ค้นหาเจอ จะยอดที่แสดงในส่วนของ "จากทั้งหมด ..... รายการ" (3) ดึงรายการทั้งหมดที่ค้นเจอ โดยสามารถกำหนดเงื่อนไขการแบ่งหน้าได้ public function read($start_row = FALSE, $per_page = FALSE) { $search_field = $this->session->userdata($this->session_name . '_search_field'); $value = $this->session->userdata($this->session_name . '_value'); $value = trim($value); // ถ้ามีเงื่อนไขหลัก ให้ใส่ไว้ก่อนที่นี่ $where = "GEO_ID IN (1, 2, 3)"; $order_by = ''; if($this->order_field != ''){ $order_field = $this->order_field; $order_sort = $this->order_sort; $order_by = " $this->my_table.$or...

จัดระเบียบโค้ด ใน Notepad++ (Auto indentation plugin)

เวลาเขียนโค้ด แล้วไม่ได้จัดรูปแบบ หรือเอาโค้ดจาก Text Editor หนึ่งมาใช้ในอีกตัวหนึ่งก็มีโอกาสที่ Tab หรือ Space bar จะต่างกัน แล้วเราจะมานั่ง TAB เองก็คงไม่ไหว จึงจำเป็นต้องหา Plugin เข้ามาช่วย ลองค้นดูก็เจอกับกระทู้นี้ >> แม้หน้าตาจะไม่ตรงกันแต่หลักๆก็คือเพิ่ม Plugins เข้าไปชื่อ Indent By fold อ่านเต็มๆได้ที่นี่ https://softwarerecs.stackexchange.com/questions/1496/auto-indentation-plugin-for-notepad

การส่งค่าผ่านแบบฟอร์มและลิงค์ไปยังไฟล์ PHP และการรับค่าผ่านตัวแปรต่างๆ

การรับค่าจากแบบฟอร์มนั้น PHP จะใช้ตัวแปรอยู่ 3 แบบด้วยกัน คือ  $_GET, $_POST, $_REQUEST ซึ่งแต่ละแบบจะมีการส่งค่าดังนี้ 1. $_GET จะส่งค่าผ่าน URL เราจะเห็นพารามิเตอร์ที่ส่งไปต่อท้าย URL ของหน้านั้นๆ 2. $_POST จะส่งแบบไม่แสดงพารามิเตอร์ให้เห็นส่วนใหญ่จะใช้กับการส่งค่าใน HTML FORM 3. $_REQUEST จะเป็นตัวแปรที่ใช้รับค่าได้ทั้งที่ส่งมาแบบ $_GET และ $_POST สำหรับขั้นตอนการค้นหาข้อมูลเพื่อนำมาทดสอบ เราจะใช้คีย์เวิร์ดดังนี้ เข้าไปที่เว็บไซต์ www.google.co.th แล้วค้นหาคำว่า "php การรับค่า ฟอร์ม" จากนั้นก็ลองนำซอร์สโค๊ดตัวอย่างมาทดลองดูว่าได้ผลอย่างไรบ้างและแตกต่างกันอย่างไร การส่งค่าผ่าน HTML FORM และ เมนูลิงค์ต่างๆ <html>    <head>        <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />        <title>ทดสอบ การรับค่าผ่านฟอร์ม คำนวณพื้นที่สี่เหลี่ยม</title>    </head>    <body>    | <a href="form-reque...

เขียนโปรแกรม PHP เชื่อมข้อมูลหลายตารางแบบไม่ใช้ INNER/LEFT JOIN

PHP กับการเชื่อมตารางหลายตารางโดยไม่ใช้ JOIN ในการเขียนโปรแกรม PHP กับ MySQL บางครั้งการ JOIN แม้จะทำ INDEX ไปแล้วแต่ก็ยังมีโอกาสทำงานช้าได้ ซึ่งจากบทความก่อนหน้านั้น ผมได้สาธิตวิธีการเขียนโปรแกรมเชื่อมต่อฐานข้อมูล MySQL หลายตารางด้วยคำสั่ง JOIN ไว้ในบทความ " การทำ Index ให้ MySQL Database เพื่อเพิ่มความเร็ว " จะเห็นว่าเราสามารถเพิ่มความเร็วให้ได้อย่างดีทีเดียว แต่การเขียนโปรแกรมดังในวิดีโอนี้ จะเป็นการใช้ Array เก็บข้อมูลจากฐานข้อมูลไว้เปรียบเทียบรหัสที่ตรงกัน เพื่อดึงชื่อจากตารางอื่นมาแสดง ซึ่งก็มีข้อจำกัดเรื่องจำนวนเรคอร์ดหรือแถวของตารางที่จะดึงข้อมูลมาใส่ใน Array เพราะถ้าข้อมูลเยอะและมีการเปลี่ยนแปลงตลอดเวลา การเขียนโปรแกรม PHP โดยเก็บไว้ในอาร์เรย์ทั้งหมด ก็คงเป็นเรื่องยาก $allProduct = array(); $allCategoryId = array(); ดังนั้นตัวแปรทั้งสองตัวด้านบนนี้ จึงต้องเก็บเฉพาะข้อมูลของรายการที่เกี่ยวข้องเท่านั้นด้วยการค้นหาตาราง product  โดยคัดเอาเฉพาะที่มีอยู่ในรายการเท่านั้น IN() $allCategory = array(); แต่การใช้กับตาราง category  จะต่างกัน เพราะในตารางน...

ค้นหาบล็อกนี้