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

บทความ

กำลังแสดงโพสต์จาก 2013

ออกแบบโครงสร้างฐานข้อมูล MySQL ของแบบสอบถาม

 การออกแบบโครงสร้างฐานข้อมูลของแบบสอบถามที่จะกล่าวถึงนี้ สำหรับรูปร่างหน้าตาของแบบสอบถามนั้นจะแตกต่างจากที่พบเจอในงานวิจัย หรือการทำโพลต่างๆ แต่หลักการยังคงเหมือนกัน บทความนี้ จะเป็นการกล่าวถึงการสร้างแบบฟอร์มสำหรับเก็บข้อมูลความพึงพอใจลูกค้า หรือใช้เก็บข้อมูลบางอย่างที่เราต้องการจากกลุ่มเป้าหมาย เช่น ความพึงพอใจต่อบริการที่ได้รับ การเก็บประวัติความสนใจ หรือความต้องการต่างๆของกลุ่มเป้าหมาย

ฟังก์ชั่น PHP ที่ใช้สำหรับหาตำแหน่งวันประจำสัปดาห์จากวันที่ที่กำหนด

ช่วงก่อนได้ลองเขียนโค๊ดเล่นๆ เกี่ยวกับปฏิทินมาได้ระยะหนึ่ง จึงมีโอกาสได้ใช้ความรู้อันน้อยนิดที่ได้รับ มาเผยแพร่ให้ได้ลองทดสอบดูกัน ไปเจอคำถามจากเว็บบอร์ด Thaicreate.com เกี่ยวกับการหาวันพุธจากวันที่ต่างๆ ว่าจะทำอย่างไร สำหรับ PHP แล้ว ผมใช้ฟังก์ชั่น date() เลยครับ เพราะฟังก์ชั่น date() เป็นพระเอกของเรื่องวันเวลาอยู่แล้ว การเรียกใช้งานก็ทำได้โดย กำหนดพารามิเตอร์ตัวแรก ให้เป็นรูปแบบ w และกำหนดพารามิเตอร์ตัวที่สอง เป็นวันที่ที่แปลงด้วยฟังก์ชั่น strtotime() ตัวอย่างตามนี้เลย <?php echo date('w', strtotime('2013-12-14')); ?> ค่าที่ออกมาคือ 6 ซึ่งเท่ากับวันเสาร์ การกำหนดรูปแบบ w คือให้แสดงค่า 0-6 ซึ่งหมายถึง วันอาทิตย์ - วันเสาร์ ดังนั้นการหาวันพุธ เมื่อเรียงลำดับ อาทิตย์ จันทร์ อังคาร พุธ ก็จะได้เท่ากับ 3 หากวันที่ใดคืนค่า 3 แสดงว่าวันที่นั้นเป็นวันพุธนั่นเอง บทความที่เกี่ยวข้อง PHP Calendar : ฝีกสร้างปฏิทินไว้ใช้ในงานต่างๆ  PHP Calendar : สร้างปฏิทินมุมมองแบบสัปดาห์  สร้างปฏิทิน รายงานยอดที่พนักงานทำได้ในแต่ละเดือ

PHP Calendar : สร้างปฏิทินมุมมองแบบสัปดาห์

ได้เพิ่มมาแล้วกับปฏิทินอีกหนึ่งมุมมอง หลังจากที่สร้าง ปฏิทินมุมมองแบบเดือน ทิ้งไว้หลายเดือน ก็ถึงเวลาซะทีสำหรับเริ่มจัดการกับมุมมองที่เหลือ และคงจะมีอีกหลายๆส่วนตามมาเรื่อยๆครับ  รู้สึกจะผูกพันธ์กับการเขียนโค๊ดปฏิทินอย่างบอกไม่ถูก อาจจะเป็นเพราะก้าวแรกของการเป็นโปรแกรมเมอร์ของผมเริ่มทดลองงานด้วยโปรเจ็กต์ Todolist ก็เป็นได้ และหลังจากนั้นงานที่ได้รับมอบหมายก็มักจะเกี่ยวกับปฏิทินอยู่ตลอด เช่นการติดตามลูกค้า ทั้งลูกค้าเป้าหมาย และบริการหลังการขาย และงานลูกค้าสัมพันธ์  ก่อนที่จะไปไกลถึงเรื่องอื่น เรามาเริ่มกันต่อที่ปฏิทินมุมมองแบบสัปดาห์กันเลยครับ

Ajax Template Parser : เรียกใช้งานเทมเพลต CodeIgniter ด้วย Ajax

ช่วงนี้พอจะมีเวลาสำหรับทดสอบซอร์สโค๊ดที่เขียนขึ้นมาได้บ้าง หลังจากลองใช้งานดูก็คิดว่าน่าจะเป็นประโยชน์บ้าง เลยลองเอามาแปะไว้เผื่อใครสนใจทดลองเล่นดูบ้าง หลักการของซอร์สโค๊ดนี้ก็คือ การแยกข้อมูลดิบที่ PHP สร้างขึ้นมา หรือดึงจากฐานข้อมูล ออกจากโค๊ด HTML โดยการเขียนแยกเป็น 1) หน้าควบคุม หรือเรียกใช้งาน 2) ส่วนของการสร้างข้อมูล  3) ส่วนของการแสดงผล  หากใครได้ลองใช้งาน CodeIgniter มาบ้างแล้ว ก็คงพอจะเข้าใจในส่วนของการแยก HTML ออกจาก PHP ที่ผมชอบใช้คือ Template Parser Class เลยลองนำมาประยุกต์ใช้ดู สำหรับคราวหน้าอาจจะลองทดสอบใช้งานจริงกับ CodeIgniter ดูบ้าง ว่าจะใช้งานได้ดีหรือไม่

PHP Framework ชีวิตจะง่ายขึ้นสำหรับใคร??

PHP Framework      ปัจจุบันมีเฟรมเวิร์กเด่นๆ ให้ใช้งานอยู่หลายยี่ห้อเช่น Yii, Laravel, Zend, CodeIgniter, Cakephp, Symfony และแน่นอนว่าแต่ละยี่ห้อนั้นก็มีความสามารถเฉพาะตัว เพราะต้องมีจุดแข็งไว้ดึงดูดผู้พัฒนา      ตั้งแต่ฝึกเขียน PHP มาจนกระทั่งพอจะมีความรู้มาแบ่งปันกันบ้างในระดับหนึ่ง แต่ก็ยังไม่เคยลองใช้งานเฟรมเวิร์กอย่างเป็นจริงเป็นจังสักที สำหรับมือใหม่แล้วผมไม่แนะนำสักเท่าไหร่ "ในเมื่อมันจะทำให้ชีวิตง่ายขึ้น" แล้วทำไมผมถึงไม่แนะนำให้มือใหม่ฝึกใช้ PHP Framework สักตัว ไม่ใช้เพราะมันยาก แต่เพราะกลัวว่าเว็บบอร์ดถามตอบปัญหาการเขียนโปรแกรมจะรับคำถามไม่ไหว เพราะถ้ามือใหม่ไม่ได้เริ่มจากพื้นฐานของ PHP ไม่ได้สัมผัสกับ Built-in functions ของ PHP แบบเต็มๆ ก็คงจะยากเมื่อเกิดคำถาม? และสุดท้ายนี้ก็ไม่รู้ว่าจะลงอย่างไร เพราะจู่ๆอยากเขียนหัวข้อนี้ขึ้นมา ก็ขึ้นมันซะอย่างนั้น เลยลงไม่เป็ นเห็นทีคงต้องลาด้วยคำว่า  “It is never too late to be what you might have been.”

เขียน PHP + Ajax ให้ประหยัดแบนด์วิธด้วยการแยก ข้อมูลดิบ ออกจาก HTML

"การเขียนโปรแกรมไม่ใช่เรื่องยาก"  ถึงแม้จะบอกว่าการเขียนโปรแกรมไม่ใช่เรื่องยาก แต่มันก็ไม่ง่ายเหมือนปอกกล้วยเข้าปากซะทีเดียว ผมเองก็ไม่ได้จบสายซอร์ฟแวร์โดยตรงดังนั้นซอร์ฟแวร์ที่ผมคลุกคลีอยู่กับมันล้วนแล้วแต่เป็นเรื่องของการลองผิดลองถูก นำโค๊ด PHP ของชาวบ้านมาลองดัดแปลงดู และสั่งสมประสบการณ์ทีละเล็กทีละน้อย และแล้ววันหนึ่งก็มานั่งเขียนโปรแกรมเช้ายันเย็น จนกระทั่งดึกดื่นมืดค่ำ บางทีก็ย่ำเช้า ^^" บทความไหนที่ผมบอกว่าน่าใช้ก็คือ "มันแค่น่าใช้งานนะ >_< "  ให้ลองเอาไปปรับใช้ดู อาจใช้ได้บ้างไม่ได้บ้างเพราะมีปัจจัยหลายอย่างที่เป็นตัวแปรให้ผลลัพธ์ที่ได้ต่างกันไป

ออกแบบ Code เพื่อลดภาระของเซิร์ฟเวอร์

แนวคิดนี้เกิดขึ้นในระหว่างที่ผมเรียนรู้การเขียนโปรแกรม PHP โดยเน้นใช้งาน Array เพื่อลดการใช้ทรัพยากรของ MySQL เพราะบางขั้นตอน เราสามารถเก็บข้อมูลไว้ในอาร์เรย์แล้วเรียกใช้งานจะเร็วกว่าการเรียกจากฐานข้อมูลเป็นครั้งๆ เมื่อใช้ Array มากๆ บางครั้งก็เปลืองหน่วยความจำ จึงเป็นเรื่องที่ต้องให้ความสำคัญทีเดียว การเขียนโค๊ด PHP เพื่อสั่ง MySQL คิวรี่หลายๆครั้งจะใช้ CPU มาก แต่การคิวรี่น้อยครั้งแล้วเก็บไว้ใน Array จะใช้หน่วยความจำมากเช่นกัน ดังนั้นคงต้องมองไปที่เซิร์ฟเวอร์ว่า ระหว่าง RAM กับ CPU อันไหนมีจำกัดกว่ากัน  ถ้าสามารถใช้ RAM ได้เหลือเฟือก็คงใช้ Array เก็บข้อมูลมากๆ ได้สบายๆ หรือถ้าไม่จำกัด CPU ปล่อยใช้เต็มที่แล้วล่ะก็จะเขียนโปรแกรมสั่งให้ MySQL คิวรี่กี่ครั้งก็ได้แล้วแต่คุณเลยละกัน แต่โดยส่วนใหญ่ถ้าใช้งานบนเว็บโฮสติ้ง เขาจะจำกัดการใช้งาน CPU ไว้ หากระบบของเราใช้สูงเกินไป ก็จะมีอีเมลมาแจ้งเตือน และถ้าระบบของเราใช้เกินขีดจำกัดก็อาจจะถูกบล็อคการใช้งานไปเลย ต้องเสียเวลาเจรจาต่อรองกันอีกยาว เริ่มจากแนวคิดเรื่อง  "แบ่งภาระงานให้กับสคริปต์แต่ละตัวอย่างไรดี"

โค๊ดตัวอย่างการทำ Autocomplete แบบลดจำนวนการคิวรี่ MySQL

จากบทความที่แล้ว  หลักการเขียน PHP Autocomplete ด้วย jQuery ในรูปแบบ JSON  วันนี้จะมานำเสนอวิธีการเขียนโค๊ด Autocomplete ด้วย jQuery เป็นตัวอย่างสำหรับการทำงานด้วยแนวคิดที่ว่านี้ แล้วลองประยุกต์กันดูนะครับ ในบทความนี้จะพูดถึงอะไรบ้าง ก็จะมีการเขียนโค๊ด PHP  เพื่อเรียกข้อมูลจากฐานข้อมูล MySQL แล้วเขียนเป็นไฟล์ JavaScript เพื่อเรียกใช้ด้วย Autocomplete ด้วย jQuery อีกที จากซอร์สโค๊ดจะเห็นว่า PHP จะสั่งคิวรี่เพียงครั้งเดียว และเมื่อพิมพ์รายชื่อ จะสามารถแสดง Autocomplete ขึ้นมาให้เลือกได้โดยไม่ต้องส่งค่าไปมาด้วย Ajax อีก ซึ่งประหยัดทั้งแบนวิธด์ และการทำงานของ MySQL ที่ใช้ CPU ที่เกินจำเป็นได้อีกด้วย แต่ถ้าจะให้ดีก็ไม่ต้องคิวรี่ครับ (ดึงไฟล์ที่ได้สร้างเป็น *.js ไว้แล้วมาใช้เลยจะดีที่สุด ^_^ )

หลักการเขียน PHP Autocomplete ด้วย jQuery ในรูปแบบ JSON

       จากที่เคยนำเสนอบทความเกี่ยวกับการคิวรี่ข้อมูลจากฐานข้อมูลมาเก็บไว้ในตัวแปรอาร์เรย์แบบสองมิติ และเรียกใช้โดยการอ้างอิงคีย์ของแต่ละตารางไปแล้ว วันนี้จะนำเสนอเทคนิคการคิวรี่แบบประหยัดอีกวิธีสำหรับใครที่ชอบใช้ Autocomplete เพื่อเรียกข้อมูลมาแสดงให้ผู้ใช้งานสะดวกในการคีย์ข้อมูล        แต่กรณีผู้ใช้งานในขณะนั้นมีหลายคนทำรายการพร้อมกัน การทำงานของแต่ละคนก็คิวรี่หลายครั้ง ในแต่ละวันลองคิดดูครับว่าเซิร์ฟเวอร์จะทำงานหนักขนาดไหน เช่น พอเราป้อนชื่อลูกค้ามากกว่าสองคำ ก็จะมีการดึงข้อมูลลูกค้าที่คล้ายกันมาแสดง พอพิมพ์ไปอีกเป็นสามคำก็จะเรียกอีกครั้ง พอเพิ่มหรือลบคำออกก็จะคิวรี่ทุกๆ ครั้ง ที่มีการเปลี่ยนแปลงตัวอักษร  

กรณีศึกษา : การโหลดข่าวสารประชาสัมพันธ์ด้วย PHP

       เพื่อให้ได้ข่าวประชาสัมพันธ์ที่ใหม่ และเป็นปัจจุบัน จึงมีการใช้ Ajax ดึงข้อมูลมาแสดงเสมอๆ         แต่การดึงข้อมูลการแสดงนั้น เกิดขึ้นตลอดเวลา ทั้งที่การอัพเดตข่าวสาร อาจจะมีการเปลี่ยนแปลงเพียงสัปดาห์ละครั้ง เดือนละครั้ง         ซึ่งไม่ได้เกิดขึ้นตลอดเวลาเหมือน Facebook ดังนั้น จึงไม่มีความจำเป็นที่จะต้องส่ง Ajax ไปยังไฟล์ PHP เพื่อคิวรี่จากฐานข้อมูล MySQL ในทุกๆครั้งที่ครบรอบ        ดังนั้น การคิวรี่ทุกครั้งที่ครบกำหนดเวลา จะเป็นการดึงข้อมูลเดิมมาแสดงเท่านั้น        เพื่อลดภาระการดึงข้อมูลมาแสดงที่เกินความจำเป็น จะใช้วิธีการเพิ่มไฟล์สำหรับเช็กสถานะการอัพเดตข่าว โดยที่กำหนดเงื่อนไขสถานะไว้ในคอนฟิกไฟล์ แล้วก็ตรวจสอบโดยการอ่านไฟล์นั้นขึ้นมา หากพบว่ามีการอัพเดตใหม่ ถึงจะไปคิวรี่ข้อมูลมาแสดง แต่ถ้าไม่มีการอัพเดต ก็ใช้ ข้อมูลเดิมแสดงไปเรื่อยๆ โดยไม่ต้องไปเรียกมาจากฐานข้อมูล MySQL อีก

ส่วนแสดงผล แบบระบายสีตามช่วงเวลา ระบบจองห้องประชุม

สร้างตารางเรียน ตารางสอนด้วย PHP SQL สำหรับตรวจสอบช่วงเวลาที่ว่าง สำหรับระบบจองห้องประชุม ต่างๆ จากบทความที่ผ่านมา ได้เขียนไว้แบบไม่ได้ผูกเนื้อหาไว้ก่อนหน้า จึงทำให้การทำงานอาจจะข้ามไปมา คงจะเป็นภาระให้ท่านต้องทำการค้นหา และนำมาปรับใช้กันเอง  วันนี้จึงมีบทความใหม่จะมานำเสนอ โดยที่ใช้บทความเดิมมาปรับแต่งให้เข้ากับระบบการจองห้องประชุม โดยระบบนี้จะใช้ตารางเพียง 2 ตารางในการเก็บข้อมูลเท่านั้น และฐานข้อมูลที่เราจะใช้ในการเขียนโปรแกรมร่วมกับ PHP นั้นก็คือ MySQL เหมือนเช่นเคย

สร้างปฏิทิน รายงานยอดที่พนักงานทำได้ในแต่ละเดือนแบบง่ายๆ

ดัดแปลงบทความสร้างปฏิทินนะครับ แต่ในส่วนของการเช็กตรวจสอบว่าครบ 7 คอลัมน์ขึ้นแถวใหม่ ให้ตัดออก เราจะมาสร้างปฏิทินที่แสดงวันที่แถวเดียว เพื่อแสดงยอดของแต่ละวันของเดือนที่เลือกครับ โดยเวลาส่งค่าวันที่เดือนไหนก็ดึงค่าวันที่เริ่มต้น และวันที่สุดท้ายของเดือนออกมาเก็บไว้ และใช้คำสั่งวนลูป for() ให้ครบตั้งแต่วันที่ 1 จนถึงวันที่สุดท้ายของเดือน ก็จะได้หัวตารางที่แสดงวันที่ทั้งหมดของเดือน และเราจะกำหนดให้แสดงข้อมูลแต่ละแถว เป็นรายชื่อพนักงานละกันนะครับ โดยจะดึงข้อมูลมาจากฐานข้อมูลยอดขายของเดือนที่กำหนดนี้ออกมาจัดกลุ่มตามรายชื่อพนักงาน ว่าแต่ละวันพนักงานแต่ละคนมียอดขายเท่าไหร่กันบ้าง

เทคนิคการสร้างหน้าเว็บหน้าเดียว และดึงเนื้อหาจากหน้าอื่นๆมาแสดง

การเขียนโปรแกรมภาษา PHP  มีดีหลายอย่าง ^O^ แรกเริ่มเดิมที ก็ฝึกเขียนเว็บเป็นหน้าๆ ด้วยภาษา HTML เรื่อยไปครับ ถ้าเขียนหน้าใหม่เพิ่มแต่ละที ก็คัดลอกซอร์สโค๊ดของหน้าเดิมเพื่อเอามาแก้ไขใหม่ พอแก้ไขเมนูแต่ละที ถ้ามีสิบหน้ายี่สิบหน้า  ก็ต้องไล่แก้กันไม่หวาดไม่ไหว เลยลองใช้ IFRAME มาช่วยจัดหน้าดู ก็ช่วยได้เยอะครับ  แยกไฟล์เมนู แยกไฟล์เนื้อหา แยกไฟล์ส่วนหัว พอแก้ไขลิงค์เมนู หรือแก้แบนเนอร์ ก็แก้แค่ที่ไฟล์เดียว หน้าอื่นๆ ก็จะเปลี่ยนไปโดยอัตโนมัติ ก็เพราะดึงจากไฟล์เดียวกันนี้นี่เอง แต่พอใช้งานสักพักก็เริ่มขัดใจเรื่องการดีไซน์หน้าเว็บที่ไม่ค่อยยืดหยุ่น เหมือนชีวิตอยู่แต่ในกรอบ  ออกไปไหนอย่างอิสระดั่งใจนึกคิดก็ไม่ได้ จนกระทั่งได้รู้จัก PHP  คำสั่ง include ของ PHP นั้นช่วยให้ชีวิตง่ายขึ้นเยอะทีเดียว สร้างเว็บหน้าหลักหน้าเดียว  แล้วก็ทำการเรียกเนื้อหาจากไฟล์อื่นๆ มาแสดงได้อย่างง่ายๆ หน้าเว็บก็ได้สัดส่วนสวยงามทีเดียว บทความนี้ขอจั่วหัวไว้เพียงเท่านี้ก่อน ไว้จะนำตัวอย่างการออกแบบระบบช่วยงานครู  ที่เขียนขึ้นด้วย PHP แบบทีละขั้นๆ มาให้ได้ศึกษากัน เทคนิคไหนล้าสมัย ไม่ได้ด

สร้างแบบฟอร์มล็อกอิน HTML + PHP

       ผมจะสร้างระบบตัวอย่างเพื่อแสดงให้เห็นการทำงานของสคริปต์ PHP ที่ใช้ในการล็อกอินอย่างง่ายๆ นะครับ โดยที่ผมจะสร้างโฟลเดอร์ใหม่ขึ้นในไดร์ฟที่เราได้กำหนดให้เป็น Directory Root สำหรับรันสคริปต์ PHP ซึ่งผมกำหนดเอาไว้ที่ D:\www ดังนั้นผมจะสร้างโฟลเดอร์ teacher_assistant ขึ้นมาใหม่จะได้พาธเป็น D:\www\teacher_assistant สำหรับการเข้าถึง จะใช้ URL ดังนี้ http://localhost/teacher_assistant หลังจากสร้างโฟลเดอร์เสร็จเรียบร้อยก็จะเริ่มกระบวนการเตรียมโครงสร้างโปรเจ็กต์ด้วยเครื่องมือช่วยเขียนโปรแกรมชื่อว่า eclipse ซึ่งดูวิธีการสร้างโปรเจ็กต์ได้จากบทความ เริ่มต้นสร้างโปรเจ็กต์ ด้วยโปรแกรม eclipse เครื่องมือเขียนโปรแกรม php ในบทความเป็นการสร้างโปรเจ็กต์ที่มีพาธเป็นโฟลเดอร์ login แต่ในที่นี้ต้องเป็นพาธให้ตรงกับโฟลเดอร์ใหม่ที่เราได้สร้างขึ้นด้วยนะครับ

PHP Calendar : ฝึกสร้างปฏิทินไว้ใช้ในงานต่างๆ

การสร้างตารางปฏิทินนั้น มีขั้นตอนหลักๆ อยู่ประมาณ 5 ขั้นตอนครับ 1. ค้นหาตำแหน่งของวันที่ 1 ของเดือนที่ต้องการ $startPoint = date('w', $timeDate); //จุดเริ่มต้น วันในสัปดาห์ 2. หากไม่ได้เริ่มจากช่องซ้ายมือช่องแรกสุด ให้แทนที่ด้านหน้าเป็นช่องว่าง if($startPoint < 7){ //ถ้าวันอาทิตย์จะเป็น 7     echo str_repeat("<td> </td>", $startPoint); } 3. เริ่มวนลูปตั้งแต่วันที่ 1 จนถึงวันสุดท้ายของเดือนนั้น for($i=1; $i <= $lastDay; $i++) 4. สร้างข้อมูลให้ครบ 7 วัน หรือ 7 คอลัมน์ ถ้าครบขึ้นบรรทัดใหม่ if($col % 7 == false) 5. ถ้าวันที่สุดท้ายของเดือนไม่ได้อยู่ช่องสุดท้าย ให้แทนที่ช่องที่เหลือด้วยค่าว่าง if($col < 7){ // ถ้ายังไม่ครบ7 วัน     echo str_repeat("<td> </td>", 7-$col); } ผลลัพธ์ที่ได้

บทเรียนออนไลน์ PHP : การทำงานของคำสั่งวนลูป for()

ตัวอย่างการเขียนโปรแกรม PHP กับการทำงานของฟังก์ชั่น for() แบบทีละขั้นตอน เพื่อทำความเข้าใจกับหลักการทำงานของฟังก์ชัน for อย่างง่าย START จากตัวอย่างการทำงานของโค๊ด จะกำหนดให้ $i มีค่าเริ่มต้นเท่ากับ 1 for( $i=1 ;...... การทำงานในส่วนนี้จะเกิดขึ้นครั้งเดียว คือครั้งแรกที่เข้าสู่บรรทัดนี้ และจะเริ่มทำงานบรรทัดในลูปเป็นลำดับต่อไป คือให้แสดงค่า $i ออกมา echo $i; เมื่อทำงานตามคำสั่งที่อยู่ในลูปจนหมดแล้ว จะเข้าสู่คำสั่งเพิ่มค่า $i ขึ้น 1 ค่า for($i=1;$i <= 10; $i++ ){ . . } เมื่อเพิ่มค่าเสร็จแล้วจะทำการตรวจสอบเงื่อนไขว่ายังเป็นจริงอยู่หรือไม่ for($i=1; $i <= 10 ; $i++){ . . } ครั้งแรก $i มี่ค่าเท่ากับ 1 เมื่อเพิ่มค่าแล้วก็เท่ากับ 2 2 ยังคงน้อยกว่า 10 ดังนั้นจะเข้าสู่การทำงานคำสั่งที่อยู่ในลูปก็คือ echo $i; กระทั่งถึงรอบที่ 9  $i มีค่าเท่ากับ 9 $i++ มีค่าเท่ากับ 10 $i <= 10 ตรวจสอบ $i มีค่าน้อยกว่า หรือ เท่ากับ 10 ยังคงเป็นจริง โปรแกรมจะแสดงค่า $i ออกมา นั่นก็คือ 10 นั่นเอง เมื่อโปรแกรมทำงานตามคำสั่

เริ่มต้นสร้างโปรเจ็กต์ ด้วย eclipse เครื่องมือเขียนโปรแกรม php

หลังจากที่ติดตั้งชุดโปรแกรมต่างๆ สำหรับการเขียนโปรแกรม PHP เป็นที่เรียบร้อยแล้ว มาบทความนี้ เราจะเริ่มสร้างโปรเจ็กต์งานของเรากันเลยนะครับ ที่จริงแล้วเราสามารถที่จะเขียนโปรแกรม PHP ด้วยโปรแกรม Text Editor ทั่วไปได้ เช่น notepad ที่มาพร้อมกับ Windows หรือจะดาวน์โหลด notepad++ ที่มีขนาดเล็กใช้งานสะดวกรวดเร็ว หรือสำหรับคนที่ใช้ Ubuntu ก็มีโปรแกรม Gedit ที่มาพร้อมกับระบบให้ใช้งานได้อยู่แล้ว สำหรับเครื่องมือต่างๆที่ใช้นั้น เข้าไปอ่านได้ที่ เครื่องมือสำหรับเขียนโปรแกรม PHP 

ขั้นตอนการดาวน์โหลด และติดตั้ง eclipse โปรแกรมช่วยเขียนโค๊ด PHP

หลังจากที่ดาวน์โหลด eclipse มาแล้วเราจะสามารถคลายซิปไฟล์ออกมาแล้วเรียกใช้งานได้ทันที แต่หากเครื่องที่ใช้ยังไม่ได้ติดตั้ง Java ก็จะเกิดข้อความแจ้งเตือนให้ติดตั้ง Java Developer Kit ก่อน พิมพ์คำว่า eclipse php ในช่องค้นหาของเว็บไซต์ http://www.google.co.th เลือกลิงค์หัวข้อ PHP Development Tools (PDT) - Downloads

ดาวน์โหลด ติดตั้งและเริ่มใช้งานโปรแกรม phpMyAdmin

โปรแกรม phpMyAdmin เป็นตัวจัดการฐานข้อมูลที่ใช้งานสะดวกผ่านทางเว็บบราวเซอร์ทันที เพียงแค่ดาวน์โหลด และนำไปวางไว้ในโฟลเดอร์ root ที่เราได้กำหนดค่าไว้ในขั้นตอนการติดตั้ง Appserv เพื่อสร้างเว็บเซิร์ฟเวอร์ให้พร้อมสำหรับการพัฒนาโปรแกรม ที่จริงแล้ว phpMyAdmin สามารถเรียกใช้งานได้ทันทีหลังจากติดตั้ง Appserv เรียบร้อยแล้ว แต่ก็เป็นเวอร์ชั่นเก่าที่ส่วนติดต่อผู้ใช้ไม่ค่อยจะสวยงามเท่าเวอร์ชั่นใหม่ๆ  สำหรับวิธีติดตั้งนั้นก็ง่ายๆ ดาวน์โหลดไฟล์แล้วคลายซิปไฟล์ไว้ในไดเรกทอรี่ root ที่ใช้รันโปรแกรม php ที่เราตั้งค่าไว้ตอน ติดตั้ง Appserv นั่นเอง

การติดตั้งชุดโปรแกรม appserv เพื่อทำเว็บเซิร์ฟเวอร์

หลังจากที่ได้ดาวน์โหลดโปรแกรมสำหรับสร้างเว็บเซิร์ฟเวอร์มาแล้ว ในบทความก่อน บทความนี้เราจะเริ่มการติดตั้งชุดโปรแกรม appserv เพื่อใช้เป็นเว็บเซิร์ฟเวอร์ให้กับเครื่องคอมพิวเตอร์ของเรา ให้พร้อมใช้งานโปรแกรมที่เราพัฒนาด้วยภาษา PHP กันเลยครับ

ขั้นตอนการดาวน์โหลดโปรแกรม Appserv

Appserv เป็นชุดโปรแกรมที่ใช้สำหรับทำให้เครื่องคอมพิวเตอร์ของเราเป็นเว็บเซิร์ฟเวอร์เพื่อทดสอบ และใช้งานโปรแกรมที่เราพัฒนาด้วยภาษา PHP

สร้างฟังก์ชั่น เพื่อลดความซ้ำซ้อนในการเขียนโปรแกรม

เขียนฟังก์ชั่นสำหรับ SELECT / INSERT / UPDATE / DELETE / CANCEL ข้อมูล เพื่อลดความซ้ำซ้อนในการเขียนโปรแกรมด้วยภาษา PHP ปกติแล้วเมื่อเริ่มฝึกเขียนโปรแกรม PHP การจัดการกับข้อมูลต่างๆในฐานข้อมูลนั้น เราจะต้องใช้คำสั่งเดียวกันซ้ำๆ อยู่หลายครั้ง ซึ่งแต่ละครั้งก็จะเปลี่ยนชื่อฟิลด์และตารางที่เก็บข้อมูลให้ตรงกับที่เราต้องการ วิธีการที่รวดเร็วที่สุดคือการคัดลอกซอร์สโค๊ดเดิม แล้วมาดัดแปลงแก้ไข ในบทความก่อนหน้านี้ได้แนะนำเครื่องมือสร้างเองสำหรับช่วยลดเวลาการเขียนโค๊ดให้น้อยลงด้วยวิธีการ  สร้างตัวแปร และโค๊ด SQL สำหรับ INSERT ลงฐานข้อมูล MySQL  จะช่วยให้เราไม่ต้องนั่งพิมพ์ชื่อฟิลด์ให้ยุ่งยากอีกต่อไป แค่คัดลอกมาจากหัวตารางของ phpMyAdmin แล้ววางลงในแบบฟอร์มกดสร้างคำสั่งได้ทันที

สร้างตัวแปร และโค๊ด SQL สำหรับ INSERT ลงฐานข้อมูล MySQL

หลังจากที่นั่งเขียนโปรแกรม PHP กับคำสั่งจัดการฐานข้อมูล INSERT อยู่บ่อยๆ จนสุดท้ายก็ทนกับความจำเจไม่ไหว จึงได้สร้างหน้าแบบฟอร์มสำหรับสร้างคำสั่งบันทึกข้อมูลลงฐานข้อมูลมาใช้เองซะเลย มีบทความหลายที่แนะนำการเก็บคำสั่งที่ใช้งานบ่อยๆ ไว้ในฟังก์ชั่นจะช่วยลดความซ้ำซ้อนในการเขียนโค๊ดเดิมๆได้ แต่ก็ยังมีข้อจำกัดกับบางงานที่อยากจะเขียนสดๆ ไปเลย แบบใช้ครั้งเดียวคือไม่ต้องมีระบบอะไร แบบเขียนสคริปต์เพรียวๆ หน้าเดียวจบ สำหรับใครที่มีฟังก์ชั่น หรือเมธอด พร้อมใช้งานอยู่แล้ว จะนำไปประยุกต์ดูก็ได้นะครับ แค่เปลี่ยนส่วนของเอาท์พุตให้ตรงตามรูปแบบที่ฟังก์ชั่นเราต้องการก็ใช้ได้แล้ว ถึงแม้เราจะมีฟังก์ชั่นไว้ลดความซ้ำซ้อน แต่อย่างหนึ่งที่หลีกเลี่ยงไม่ได้คือ การกำหนดฟิลด์ที่ต้องการบันทึก หรืออัพเดตค่าลงไป ซึ่งถ้ามี 100 ฟิลด์ ก็คงจะหนาวกันเลยทีเดียว คงต้องนั่งพิมพ์ชื่อฟิลด์กันทั้งวัน และด้วยปัญหาตารางเก็บข้อมูลที่มากกว่า 100 ฟิลด์นี่เองจึงเป็นที่มาของการสร้างแบบฟอร์มสร้างคำสั่ง INSERT นี้ขึ้นมา สำหรับใครที่ต้องการทดสอบก็ลองเข้าไปตามลิงค์ที่แปะไว้ด้านล่างนี้เลยนะครับ ดูตัวอย่างได้ที่นี่ Demo http:/

PHP array_chunk() เทคนิคการเขียนโปรแกรมแสดงผล แบบแบ่งหลายคอลัมน์

การเขียนโปรแกรมเพื่อดึงข้อมูลออกมาจากฐานข้อมูล และจัดแสดงผล แบบหลายคอลัมน์นั้น เป็นสิ่งที่เราจะพบเห็นอยู่บ่อยๆ ในเว็บไซต์ที่เป็นร้านค้าออนไลน์ ที่จะนำสินค้ามาแสดงในหน้าแรกเพื่อให้ลูกค้าได้เลือกซื้อกันได้ง่าย และหลายรายการ เพราะแสดงเป็นแถวละรายการ คงจะเปลืองพื้นที่แสดงสินค้าหลายแถว จนหน้าเว็บอาจจะยาวทะลุจอไปเลยก็ได้ สำหรับเทคนิคการแสดงผลแบบแบ่งหลายคอลัมน์นั้น ยังนิยมอย่างมากในการทำแกลอรี่รูปภาพ ซึ่งตัวอย่างที่นำมาให้ดูนี้อาจจะคุ้นตามกันอยู่แล้ว เป็นบทความที่นำมาจากเว็บไซต์ ThaiCreate.Com PHP MySQL Multiple Column จากตัวอย่างกำหนดให้ $intRows นับจำนวนรายการที่ดึงออกมาจากฐานข้อมูล  จะมีคำสั่งที่ใช้ตรวจสอบจำนวนคอลัมน์ว่าครบหรือยังเพื่อขึ้นบรรทัดใหม่โดยตรวจสอบ 24. 25. if (( $intRows )% 2 ==0) 26. { 27. echo "</tr><tr>" ; 28. } ความหมายของคำสั่งนี้ก็คือ ถ้าจำนวนรายการนั้น หาร ด้วย 2 แล้วลงตัว ก็ให้ปิดแถว เพื่อขึ้นแถวใหม่ เราก็จะได้ข้อมูล 2 คอลัมน์เหมือนตัวอย่าง

แปลงวันเวลา datetime <-> timestamp

การแปลงค่าวันที่เพื่อนำไปใช้คำนวณระยะห่าง ระหว่างวันที่นั้นจำเป็นจะต้องจัดรูปแบบใหม่ และเมื่อคำนวณเสร็จแล้ว ก็อาจจะต้องนำกลับมาใช้ใหม่เพื่อแสดงค่าวันที่ที่คำนวณแล้ว โดยพื้นฐานการเปลี่ยนวันที่ date เป็น time และจาก time เป็น date นั้น ใช้หลักการง่ายๆ ดังนี้ หา Timestamp จาก Datetime ในรูปแบบ yyyy-mm-dd H:i:s <?php $datetime = "2013-05-21 02:41:53"; $exp = explode(" ",$datetime); $t = explode(":",$exp[1]); $d = explode("-",$exp[0]); $timestamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]); echo $timestamp; ?> หาวันที่ Datetime จาก Timestamp <?php $timestamp = "1369104113"; echo date("Y-m-d H:i:s", $timestamp); ?> ถ้าหากได้ใช้คำสั่งข้างบนนี้บ่อยๆ เราก็จำเป็นต้องสร้างฟังก์ชั่นไว้ เพื่อสะดวกในการเรียกใช้งาน <?php  function dateToTime($datetime){      $exp = explode(" ",$datetime);      $t = explode(":",$exp[1]);      $d = explode("-",$exp[0]);  

ใช้ฟังก์ชั่น implode() เพื่อลดการเขียนโปรแกรมวนลูปใช้เอง

ในการเขียนโปรแกรมแต่ละครั้ง เวลาที่เราต้องการเชื่อมอาร์เรย์ด้วยค่าบางอย่าง เช่นเครื่องหมายคอมม่า (,) เครื่องหมายขีดคั่น ( | ) หรือเว้นบรรทัด และอื่นๆ เราจะต้องทำการวนลูปโดยเริ่มจากอาร์เรย์ตัวแรก ไปจนถึงอาร์เรย์ตัวสุดท้าย เราก็จะได้ ข้อความที่เชื่อมกันมาใช้งาน เช่น <?php $delimiter = ''; $string = ''; $idArr = array(111, 222, 333, 444); foreach($idArr as $id){     $string .= $delimiter . $id;     $delimiter = '|'; } echo $string; ?> ผลลัพธ์ที่ได้คือ ข้อความที่เชื่อมกันด้วยขีดคั่นกลาง 111|222|333|444 จะเห็นว่าเราต้องเขียนโค๊ดถึง 6 บรรทัดด้วยกัน ซึ่งนับจำนวนตัวอักษรแล้วก็หลายตัวทีเดียว สำหรับการเขียนโปรแกรม php ได้มีฟังก์ชั่นที่พร้อมให้เราเรียกใช้แล้ว ถ้าจำกันได้ผมเคยเขียนบนความเกี่ยวกับสร้างแถวแต่ละแถวของตาราง  html อย่างง่ายด้วยฟังก์ชั่น implode() และครั้งนี้ก็จะนำมาใช้อีกครั้งโดย เปลี่ยนโค๊ด php ที่เราเขียนดังนี้ <?php $idArr = array(111, 222, 333, 444); $string = implode("|", $idArr); echo $string; ?> ด้วยฟังก์ชั่น impl

การแปลงเลขอารบิก เป็นเลขไทย ทั้งแบบ Javascript และ PHP

การแปลงเลขอารบิค เป็นเลขไทย <script type="text/javascript"> //JavaScript Code function thaiNumber(num){ var array = {"1":"๑", "2":"๒", "3":"๓", "4" : "๔", "5" : "๕", "6" : "๖", "7" : "๗", "8" : "๘", "9" : "๙", "0" : "๐"}; var str = num.toString(); for (var val in array) { str = str.split(val).join(array[val]); } return str; } var thaiNum = thaiNumber(12345); alert(thaiNum); </script> <?php //PHP Code $message = "1,256.25"; function toThaiNumber($number){ $numthai = array("๑","๒","๓","๔","๕","๖","๗","๘","๙","๐"); $numarabic = array("1","2","3","4","5","6","7","8&

สร้างตารางเรียน ตารางสอนด้วย PHP

ตัวอย่างการสร้างตารางเรียน ตารางสอน เป็นซอร์สโค๊ดที่ได้จากคำถามในฟอรั่ม PHP ของเว็บไซต์ thaicreate.com ที่ผมเคยตอบเอาไว้ครับ โดยการดึงค่าจากฐานข้อมูลมาเก็บไว้ที่อาร์เรย์ แล้ววนลูปแสดงค่าอาร์เรย์ออกมาเป็นตาราง โดยสามารถปรับแต่งค่าในอาร์เรย์เพื่อให้ตรงต่อความต้องการของแต่ละท่านได้ตามความต้องการครับ รูปตัวอย่างการสร้างตารางเรียน ตารางสอนด้วย PHP <?php $timeArr = array( 0 => array( "start" => "08:30", "stop" => "09:20"), 1 => array( "start" => "09:20", "stop" => "10:10"), 2 => array( "start" => "10:15", "stop" => "11:05"), 3 => array( "start" => "11:05", "stop" => "11:55"), 4 => array( "start" => "11:55", "stop" => "12:45"), 5 => array( "start" => "12:45", "stop" => "13

สร้างรหัสอัตโนมัติ ด้วยฟังก์ชั่น substr()

รหัสอัตโนมัตินี้ จะเป็นรหัสที่ไม่ซ้ำกัน เพื่อใช้อ้างอิงเอกสารแต่ละรายการที่พิมพ์ออกมา ซึ่งอาจจะเป็นรหัสที่ใช้สร้างบาร์โค๊ดด้วย การสร้างตารางเก็บข้อมูลจะมีฟิลด์ที่เป็น Primary Key อยู่สองฟิลด์คือ ฟิลด์ id กับ ฟิลด์ doc_no ฟิลด์ id จะกำหนด type เป็น int(11) และเพิ่มค่าอัตโนมัติ (Auto Increment) ฟิลด์ doc_no จะกำหนดเป็น varchar(11) <?php $code = "A"; $yearMonth = substr(date("Y")+543, -2).date("m"); //query MAX ID //$sql = "SELECT MAX(id) AS last_id FROM my_table"; //$qry = mysql_query($sql) or die(mysql_error()); //$rs = mysql_fetch_assoc($qry); //$maxId = substr($rs['last_id'], -5); //ข้อมูลนี้จะติดรหัสตัวอักษรด้วย ตัดเอาเฉพาะตัวเลขท้ายนะครับ $maxId = 237; //<--- บรรทัดนี้เป็นเลขทดสอบ ตอนใช้จริงให้ ลบ! ออกด้วยนะครับ $maxId = ($maxId + 1); $maxId = substr("00000".$maxId, -5); $nextId = $code.$yearMonth.$maxId; ?> การทำงานของโค๊ด 1. กำหนดอักษรนำหน้า 2. ดึงค่าปี เดือน ปัจจุบัน 3. ดึงค่าไอ