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

บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ แอดมิน กับงาน Programming

Coding error detected, it must be fixed by a programmer: Failed to unserialise data from file. Either failed to read, or failed to write.

Moodle กับการแจ้งเตือนข้อผิดพลาด Coding error detected, it must be fixed by a programmer: Failed to unserialise data from file. Either failed to read, or failed to write. สรุปขั้นตอนการแก้ไขปัญหา 1) ส่วนของโฟลเดอร์ที่ใช้เก็บข้อมูล moodledata ให้เปลี่ยนชื่อเพื่อแบ็กอัพข้อมูลเดิมเอาไว้ เช่น moodledata => moodledata-bkk2014-08-09 2) แล้วสร้างโฟลเดอร์เปล่าขึ้นมาแทน moodledata แล้วกำหนดให้ อ่านเขียนไฟล์ได้ด้วย (กรณีเซิร์ฟเวอร์ไม่ได้กำหนดให้เขียนไฟล์ได้อัตโนมัติ) 3) ลองรีเฟรชหน้าเว็บ จะเข้าใช้งานได้ปกติ แต่ข้อมูลที่เราสร้างไว้จะหายไป 4) ให้ไปคัดลอกไฟล์ที่เราเป็นคนสร้างเองจากโฟลเดอร์เดิม มาวางในโฟลเดอร์ใหม่ (moodledata-bkk2014-08-09 ==> moodledata) ที่ลองทำดูคือคัดลอกเฉพาะโฟลเดอร์ moodledata-bkk2014-08-09/filedir จากกระทู้ในลิงค์อ้างอิงนั้นได้เขียนไว้ว่า ให้ลบ cache ก็จะใช้งานได้ปกติ Simple way to solve the problem : delete moodledata cache. Command line: rm -rf /var/moodledata/cache และถ้ามีการลบ localcache จะเหมือนการเริ่มต้นใหม่ทั้งหมด (รึเปล่า!!) ...

เรื่องของวันที่ ยอดเงินคงเหลือ และการแก้ไขรายการเดิม

ก่อนผมยังคงไม่แน่ใจว่าควรจะทำยังไงกับเคสนี้ดี ทำไมน่ะเหรอก็มันเป็นเรื่องราวเกี่ยวกับการย้อนเวลาด้วยน่ะสิ แต่ในขณะที่กำลังเขียนบทความนี้ สมองมันคิดไปด้วยก็พอจะมองแนวทางออกแล้วล่ะ "น้อง...ระบบน้องไม่ยอดคำนวณยอดเงินให้พี่ใหม่ แบบนี้พี่ก็ทำเอกสารลำบากน่ะสิ ต้องคอยมาพะวงตลอดว่ายอดเงินถูกต้องหรือเปล่า"? น้ำเสียงที่เต็มไปด้วยความหงุดหงิด เผยออกมาอย่างชัดเจน ซึ่งผมคิดไว้ก่อนหน้านี้แล้วว่าเคสนี้ไม่วันใดวันหนึ่งมันต้องเกิด...เพียงแต่นี่มันเร็วไป!? "พี่ครับ ผมต้องขอโทษจริงๆนะครับ เพราะส่วนของการแก้ไขยอดเงินจะอ้างอิงยอดเดิมที่เราทำรายการไว้ก่อนหน้าที่จะเปลี่ยนแปลงยอดเงินในรายการอื่นน่ะครับ ถ้ามีการแก้ไขรายการอื่น พี่ต้องกดปุ่มคำนวณยอดใหม่เองนะครับ ยอดเงินถึงจะแสดงยอด ณ ปัจจุบันได้" ผมพยายามแนะนำวิธีการซึ่งผมเคยแก้ปัญหาคร่าวๆ ไปแล้วครั้งหนึ่งแต่ดูเหมือนเจ้าปุ่มเล็กๆนั้น ยังไม่ค่อยเป็นที่รู้จักกัน เพราะผมเองก็ไม่ได้ใส่ไว้เป็นส่วนหนึ่งของคู่มือ เพราะสร้างมันมาอย่างเฉพาะกิจ ผมเฝ้าโทษตัวเองไปแก้ไขโค๊ดไปเกือบชั่วโมง เพื่อลดปัญหานี้ในระดับหนึ่ง 1. เมื่อมีการทำรายการใหม่...

เขียน Unit Test กันรึยังครับ?

เขียน Unit Test กันรึยังครับ?   (ผมอยากเขียน แต่เขียนไม่เป็น ^^') เดาเอาว่าคงเหมือนเวลาเขียนโค๊ดแก้บั๊ก ที่เวลานำเข้าข้อมูลไม่ได้ (Integrate System)   หรือบันทึกการจองแล้วแต่ยอดจองไม่ขึ้น!! เราก็ต้องแทรกโค๊ดๆๆๆๆ เพื่อตรวจสอบดูแต่ละจุด แต่มันจะดีกว่าไหม ถ้าเขียนมันไว้ก่อน!! และคำถามคือ จะเขียนอะไร?? ในเมื่อยังไม่รู้ว่าส่วนไหนจะผิดพลาด! http://www.somkiat.cc/not-test-my-code/

eclipse php สร้าง Desktop Launcher เพื่อเอาไปวางบน Panel ของ xubuntu 14.04

หลังจากที่เกิดปัญหาดาวน์โหลด eclipse PDT มาแล้ววางในไดร์ฟอื่นที่ยังไม่ได้ mount จะเปิดไม่ขึ้น เพราะไดร์ฟอื่นๆมันเป็น ntfs ซึ่งจะต้อง mount แล้วกำหนดสิทธิ์ก่อน ผมจึงคัดลอกโฟลเดอร์ eclipse pdt ไปวางที่ home directory หรือจะเก็บใน Document หรืออะไรก็ได้ที่อยู่ใน file system ที่เราติดตั้งระบบปฏิบัติการ xubuntu จากนั้นก็กำหนดให้มัน executable หรือ run as program ให้ได้ก่อน จากนั้นก็เปิด eclipse มาใช้งานได้ปกติ แต่แล้วความเกียจคร้านก็บังเกิดขึ้น เมื่อการที่ต้องเปิดไปที่ /home/my_user_folder มันไม่ทันใจ ก็ต้องหาทางสร้าง short cut เพื่อเรียกใช้งานกันง่ายๆ ที่หน้าจอเลย ที่จริงแค่คลิกขวา send to > Desktop (create shortcut) ก็ทำได้ แต่ด้วยความไม่ชอบหน้าจอรก จึงอยากให้ติดอยู่กับ Panel หรือ Task bar ให้เห็นชัดๆกันไปเลย ที่หน้า Desktop ให้ทำการ  คลิกขวา  แล้ว  Create Launcher.. กำหนดชื่อ ใส่คำอธิบาย แล้วก็เลือกโปรแกรมที่ต้องการเปิด เท่านี้ก็เรียบร้อย ผมได้วิธีจากลิงค์ด้านล่างนี้ แต่ว่าไม่ได้พิมพ์คำสั่งใน Terminal นะครับ แค่ คลิกขวา แล้ว Create Launcher.. Ho...

เมื่อผมต้องเริ่มศึกษาการทำงานของ CakePHP Framework

เมื่อต้องเรียนรู้ PHP Framework ตัวใหม่ๆ เรามักรู้สึกว่าตัวเองเป็นเหมือนเด็กน้อยที่เพิ่งหัดก้าวเดิน พอล้มก็กลัวที่จะลุกขึ้นมาเดินใหม่อีกครั้ง กล้าๆกลัว เหมือนตัวเองไร้ซึ่งประสบการณ์ เมื่อครั้งนั้นที่เริ่มหัดใช้ CodeIgniter Framework กังวลไปทุกสิ่งอย่างกลัวงานไม่เสร็จ กลัวเกดปัญหาแล้วไปต่อไม่ได้ แต่เมื่อคิดที่จะเปลี่ยนแปลงจึงได้ลองใช้งานจริง ก็เจอปัญหาจริงๆครับ ก็ต้องพยายามแก้กันไป และเมื่อมีโอกาสเข้าเป็นฟรีแลนซ์ที่รับเขียนงานตามสเปคที่กำหนด ความกลัวนั้นก็เกาะกุมหัวใจอีกครั้งเพราะต้องศึกษา PHP Framework ของบริษัทนั้น ไม่เพียงแต่ PHP เท่านัน JavaScript ก็ยังเป็นเฟรมเวิร์กเพราะเขาเขียนแบบ OOP เกือบเดือนกระมังกว่าที่ผมจะไ้ด้ส่งงานง่ายๆงานแรกแค่ INSERT SELECT UPDATE DELETE เท่านั้นเอง ตอนนี้เกิดอาการเดียวกันอีกแล้ว CakePHP ผมเห็นคนถามนี้แล้วอ่านโค๊ดไม่ออกเลยจริงๆ แต่เพราะผมอยากรับงานฟรีแลนซ์ที่ต้องใช้ CakePHP เป็นระบบ Back-End จึงต้องเริ่มเผชิญหน้ากับสิ่งที่กลัวอีกครั้ง

ปัญหาโปรแกรมเมอร์ไทย คือภาษาและการสื่อสาร

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

facebook กับการตลาดขั้นเทพ ค้นหาร้านค้าด้วยรูปภาพ

พอดีว่าอยากลองค้นราคากีตาร์เบสสักตัว แล้วก็ไปเจอรูปสวยๆก็เลยเก็บไว้มาโพสต์ลงในเฟซบุ๊กส่วนตัว ไม่น่าเชื่อครับ facebook ค้นหาร้านค้าให้จากรูปภาพได้เลย ก่อนหน้านี้ผมก็พอจะรู้จักบริการค้นหาด้วยรูปภาพของ Google อยู่บ้าง แต่ก็ไม่ค่อยได้ใช้บริการเท่าไหร่นัก (เพราะไม่รู้จะค้นหาอะไร นานๆก็จะค้นหาเน็ตไอดอลที ^^;) แต่ดูจากรูปสิครับ ร้านค้าที่ลงโฆษณากับทาง facebook ไว้จะขึ้นมาแสดงให้ทันที เพิ่งรู้ว่าเดี๋ยวนี้เทคโนโลยีไปไกลแล้ว ผมนี้ วิ่งตามไม่ทันเลยทีเดียว

การตั้งคำถามที่ไม่ชัดเจน จะทำให้การหาผลลัพธ์นั้นยากเย็นขึ้นอีกหลายเท่า

ต้องขออภัยหากข้อมูลนี้ ไปคล้ายกับการตั้งคำถามของหลายๆคน ต้องขอบอกว่าผู้เขียนไม่มีจุดประสงค์ในแง่ร้ายใดๆกับผู้ที่ตั้งกระทู้ในแนวนี้ เพราะเข้าใจว่าบางครั้งเราก็ไม่สามารถจะนำข้อมูลทั้งหมดมาตั้งคำถามได้ แต่บางครั้งการถามคำถามที่ไม่ชัดเจนในวัตถุประสงค์ ก็ทำให้ผู้ที่จะช่วยตอบคำถาม เกิดความสับสน และงงไปตามๆกัน $n=0; $num = 0; $result = mysql_query("SELECT * FROM my_table WHERE my_date = DATE(NOW()) "); while($row = mysql_fet_array($result)){ $num = $n++; } echo $num; "มีวิธีที่จะสามารถ echo $num; ไว้ที่ บรรทัดบน loop while มั้ยครับ" การยกตัวอย่างนี้คือคำถามที่ผมเห็นแล้วงงจากเว็บบอร์ดที่อื่น เลยไล่อ่านดูความคิดเห็นทั้งหมด สุดท้ายก็เข้าใจได้ว่า ต้องการแสดงผลรวม หรือข้อมูลก่อนรายละเอียด และวิธีแก้ปัญหาโจทย์ข้อนี้ก็คือ ให้เก็บข้อมูลไว้ในอาร์เรย์ก่อน แล้วค่อยนำมาแสดงผลก็จะสามารถแสดงผลก่อนตารางรายละเอียดทั้งหมดนั่นเอง บางทีการถามคำถาม ก็เป็นสิ่งที่ยากกว่าการหาคำตอบของโปรแกรมเมอร์

ขีดเขียนความคิด ลอจิกต่างๆ ก่อนเริ่มเขียนโค๊ดโปรแกรม

กระดาษแผ่นขนาดใหญ่โทนสีน้ำตาลอ่อนถึงอ่อนมากๆ ผมไม่รู้หรอกนะว่าชื่อเรียกอะไร แต่มันคือก้าวแรกของตัวอ่อนโปรแกรมเมอร์จนเป็นผมในทุกวันนี้ ไม่ว่าจะเป็นฐานข้อมูล หรืออัลกอริทึมที่จะใช้ แค่เขียนใส่มันเข้าไปให้เต็ม ก็จะมองภาพออกว่าโปรแกรมที่เราต้องการนั้นจะต้องเริ่มยังไง และสิ้นสุดในทิศทางไหน จากกระดาษแผ่นใหญ่เท่ากระดานไวท์บอร์ดเหล่านี้ ก็เริ่มเปลี่ยนแปลงไปเป็นกระดาษ A4 แผ่นเล็กๆ จากวันเป็นเดือน จากเดือนเป็นปี และในที่สุดก็ใช้โปรแกรมอื่นๆเข้ามาช่วยงานจนคล่องมือ แม้นทุกวันนี้จะไม่ได้ขีดเขียนความคิดใดๆลงไปบนกระดาษแผ่นใหญ่แบบนี้แล้ว แต่ความทรงจำเริ่มแรกเหล่านั้นยังคงอยู่ไม่รู้ลืม "น้องเขียนลงไปเลยนะ ปฏิทินที่พี่จะให้สร้างเนี่ยน้องว่าควรจะมีอะไรบ้าง" ...ครุ่นคริดอยู่หลายวินาที.... "ถ้าคิดยังไม่ออกพี่ให้ข้อมูลนี่ไปก่อนเลย หนึ่งนะหัวข้อ สองนะวันที่ สามนะเจ้าของเรื่อง สี่นะผู้รับ ฯลฯ" "พี่ครับ ผมขอเอาส่วนนี้รวมกันได้มั้ยครับ เวลาเขียนโค๊ดจะได้ไม่ต้องค้นหาหลายรอบ" "ตามใจน้องเลย แต่ถ้าแยกออกไปมันจะยืดหยุ่นกว่านะ" ณ วันนั้นผมไม่เข้าใจเท...

จะเขียน PHP บนมือถือยังไงดี

ผมลองค้นหาด้วยคำว่า php on androide และ lampp for androide ใน google play store ก็ได้เจอกับแอพฟรีบ้าง เสียตังค์บ้าง ซึ่งหลังจากที่ลองติดตั้งก็พบว่าใช้พื้นที่เยอะทีเดียว และอีกอย่างการพิมพ์บนมือถือก็เป็นเรื่องที่ลำบากทีเดียว จึงนึกถึงโปรเจ็กต์ของตัวเองขึ้นมาได้ ถ้าเราเขียนโปรแกรมโดยที่ไม่ต้องพิมพ์ก็จะสามารถใช้งานบนมือถือได้ง่ายขึ้นอยู่กับ และถ้ามีเว็บโฮสติ้งด้วยแล้วสามารถเขียนโปรแกรมผ่านอินเตอร์เน็ตที่ไหนก็ได้ หลักการง่ายคือสร้างไอคอนให้คลิก แล้วก็เขียนโค้ดให้ทำการสร้างโค้ดที่เราต้องการให้อัตโนมัติ เมื่อจบกระบวนการก็เพียงแค่บันทึกแล้วเรียกหน้าเว็บที่ต้องการทดสอบขึ้นมาแสดงผลได้ทันที ตอนนี้ยังติดเรื่อง drag &drop ทำให้ยังไม่คืบหน้าเท่าที่ควร คงต้องตัดเรื่องนี้ออกไปก่อน ทำระบบแบบธรรมดาไปก่อน แล้วค่อยพัฒนาอินเตอร์เฟซทีหลัง อีกไม่นานคงจะได้เห็นตัวต้นแบบ ที่จะสร้างขึ้นมาแบบบ้าน ให้ลองได้ใช้กันดู -------------------------------------------- ติดตามเรื่องราวการเขียนโปรแกรม PHP ได้ที่ https://www.youtube.com/user/PHPcodingAndDesign/channels เตรียมตัวก่อนเขียน PHP 5.5 https:...

แนะนำการใช้ PHP TCPDF แก้ปัญหาสระอูหาย

สำหรับใครที่ต้องการฟอนต์ th sarabun (ไทยสารบัญ) เพื่อใช้งานกับ TCPDF ลองเข้าไปดูที่นี่ >> http://www.thaicreate.com/php/forum/109331.html สำหรับวิธีนำ tcpdf ไปใช้กับ codeigniter ลองอ่านเวอร์ชั่นภาษาอังกฤษดูครับ >> https://github.com/EllisLab/CodeIgniter/wiki/TCPDF-Integration แล้วสุดท้าย ถ้า PDF ออกมาแล้วสระอูหาย ไม่ต้องตกใจไปนะครับ ลองกับเว็บบราวเซอร์ทุกตัวดูก่อน ว่าผลลัพธ์เหมือนกันหรือไม่ เพราะผมเจอปัญหาสระอูหาย (สระอุ ยังแสดงได้ แปลกแฮะ) ในเว็บบราวเซอร์ Firefox เท่านั้น ไปลองกับ Chrome และ IE ยังแสดงผลถูกต้อง วิธีแก้ปัญหาของผมก็คือ ลองบันทึกเป็นไฟล์แทน $ file = "Download/My-File-Name.pdf";   $pdf -> Output ( 'Download/My-File-Name.pdf' , 'F' );   จากนั้นก็ Force Download ไปเลยครับ header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . urlencode(' My-File-Name .pdf')); header("Content-Type: application/octet-stream"); header(...

เมื่อไหร่ถึงจะต้องแยกโค๊ดออกไปสร้างฟังก์ชั่นใหม่?

       สำหรับการเขียนโปรแกรมนั้น เมื่อเราต้องเรียกใช้ข้อมูลจากฐานข้อมูลที่เดียวกันบ่อยๆ เราจะใช้วิธีสร้างฟังก์ชั่นแยกไปไว้เป็นไฟล์ต่างหาก แล้วหน้าไหนที่ต้องการก็โหลดไฟล์นี้ไปใช้งาน ตัวอย่างเช่น การนำรหัสสินค้า ไปค้นหาข้อมูลสินค้าต่างๆ เช่น สี ขนาด ราคา หรือชื่อสินค้ารหัสนั้นๆ เราก็เพียงส่งรหัสสินค้าเข้าไปฟังก์ชั่นที่เตรียมไว้ ก็จะได้ข้อมูลที่ต้องการมาทันที และหน้าอื่นๆ ก็สามารถโหลดไฟล์ฟังก์ชั่นนี้ไปเรียกใช้ได้ทันทีโดยไม่ต้องมาเขียนคำสั่งเรียกจากฐานข้อมูลใหม่ทุกครั้ง        นอกเหนือจากนั้นยังมีส่วนของการตรวจสอบเงื่อนไข if ..... else ที่หลายครั้งก็จำเป็นต้องสร้างเป็นฟังก์ชั่นเพื่อเรียกใช้ในหน้าเดียวกัน ในหลายๆส่วนด้วยกัน เช่น ตัวอย่างการตรวจสอบสถานะการยกเลิกรายการ $my_status = 9; $status = ""; if($my_status == 9){      $status = "Cancel"; } echo $status; หากมีการเรียกใช้จากหลายๆที่ เราก็ควรจะสร้างเป็นฟังก์ชั่นดีกว่า เพราะเมื่อเวลาผ่านไป การตรวจสอบสถานะอาจจะมีเงื่อนไขเพิ่มเข้ามาใหม่ด้วย ก็จะต้อง...

การปรับโค๊ดที่ใช้แสดงผลในรูปแบบใหม่ ต้องมีการกำหนดวันที่เริ่มใช้งานด้วย

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

การเขียน if หรือ else เกี่ยวกับระยะเวลามันมีสิ่งที่ต้องคิดประกอบด้วยนะ

"ทำไมไม่มีความเคลื่อนไหว แต่ผ่านเงื่อนไขเราไปได้" เรื่องมีอยู่ว่า จะเขียนโค๊ดตรวจสอบเงื่อนไขตรวจสอบความเคลื่อนไหวของข้อมูล ถ้าผ่านมาเกิน 6 เดือนให้แจ้งเตือนถึงสิ่งที่อาจจะทำให้เกิดข้อผิดพลาด หากผู้ใช้ยังฝืนดันทุรังใช้ข้อมูลนั้นต่อไป IF Month > 6 THEN      DISPLAY แบร่ๆๆๆ ข้อมูลเก่าเกินไปแล้วนะ ไปตรวจสอบหน่อยซิว่ายังใช้ได้จริง END IF Month = ระยะเวลาที่ทำรายการครั้งสุดท้ายเทียบกับปัจจุบัน ถ้ากำหนดให้วันที่ล่าสุด คือ 2014-05-15 และวันที่ปัจจุบัน คือ 2014-09-04 Month จะมีค่าเท่ากับผลต่างของเดือนคือ 3 เดือนกว่า ซึ่งจะไม่นับเศษ Month ก็จะได้เท่ากับ 3 กรณีนี้ก็คือสามารถทำรายการได้ปกติ เพราะว่ามีการทำรายการไม่เกิน 6 เดือน นั่นก็คือข้อมูลยังใหม่ๆสดๆร้อนๆอยู่นั่นเอง แล้วถ้าเพิ่งผ่านมาไม่กี่วันอย่างกรณีนี้ล่ะ ถ้ากำหนดให้วันที่ล่าสุด คือ 2014-09-01 และวันที่ปัจจุบัน คือ 2014-09-04 เห็นมั้ยผ่านมาแค่ 4 วัน ผลต่างของเดือนก็คือ 0 ซึ่งก็ยังไม่เกิน 6 เดือน ก็ทำรายการได้ปกติ และแล้วก็เกิดปัญหากับเลข 0 ขึ้นจนได้ กรณีที่ข้อมูลเก่า เพิ่มเอาไว้เฉยๆ ไม่ได...

สไตล์การตั้งชื่อตัวแปร และชื่อฟังก์ชั่น สำหรับเขียน PHP

กาลครั้งหนึ่ง นานมาแล้ว น้องครับพี่ขอแบบฮังกาเรี่ยนสไตล์นะ ทั้งชื่อฟังก์ชั่นและตัวแปร ผม ???? ค้นไปค้นมาได้ข้อมูลประเทศฮังการีมาซะงั้น O_o!? แต่จากบทความนี้คิดว่าตัวเองคงติด Hungarian Notation ไปซะแล้ว แต่พอเขียน PHP กลับกลายเป็น Camel Case ก็มี พอจับ CodeIgniter ก็จะหันไปใช้ Underscores ซะงั้น อาจจะตรงกับสุภาษิตที่ว่า "เข้าเมืองตาหลิ่ว ต้องหลิ่วตาตาม" อ่าน Case ต่างแบบเต็มๆได้ที่นี่ http://www.unzeen.com/article/1342/

การเปลี่ยน Encoding Character set ด้วย notepad++ (ISO 8859-1 to UTF-8 )

กรณีที่ต้องคัดลอกซอร์สโค๊ดจากโปรแกรมอื่นๆ แล้วภาษาไทยเป็นภาษาต่างดาวอ่านไม่ออก ให้ลองเอาไปแปลงด้วยโปรแกรม notepad++ ดูนะครับ 1. สร้างไฟล์ขึ้นมาบันทึกให้เรียบร้อย จากนั้นนำข้อความวางลงไป 2. เปลี่ยน Char set เป็น Encoding ตัวเดิมที่มาจากโปรแกรมต้นทาง จะเห็นว่าข้อความจะเปลี่ยนไป ให้ทำการวางข้อความที่คัดลอกมาแทนที่ใหม่ทั้งหมด (กรณีนี้ต้นทางเป็น ISO 8859-1) 3. หลังจากวางข้อความแล้ว ถ้าข้อความเป็นภาษาไทยให้เลือก Char set อีกครั้งเป็น tis-620 4. ก็จะได้ข้อความภาษาไทย ถ้าหากต้องการแปลงเป็น utf-8 ให้คัดลอกข้อความชุดนี้ไว้ก่อน แล้วก็เปลี่ยน Encoding เป็น UTF-8 without BOM แล้วก็วางข้อความทั้งหมดแทนที่เดิม    ทั้งหมดก็มีเพียงเท่านี้แหละ หาวิธีมานานในที่สุดก็แปลงสำเร็จซะที จุดที่สำคัญที่สุดคือตอนเรื่อง Encoding ต้นทางครับในตัวอย่างนี้ต้นทางผมเป็น  ISO 8859-1 ซึ่งน่าจะเป็นค่ามาตรฐานของภาษาไทยในโปรแกรม IDE ตัวอื่นๆ สำหรับเครื่องมือเขียนโค๊ดท่านใดเลือก UTF-8 ได้ตั้งแต่แรกก็ถือว่าโชคดีไปนะครับ PHP  CI  MANIA   -  PHP Code Gene...

VB6 error with Left function

 วันนี้ผมวุ่นวายอยู่กับหน้าจอทั้งวัน อ่านโค๊ดเขียนโค๊ดแก้โค๊ด สุดท้ายก็ได้เวลาทดสอบซะที พอเริ่มรันโปรแกรมแค่นั้นแหละครับ errror ครับท่าน กด debug ก็พบกับข้อความแจ้งเตือน Selection Fomula ไม่ถูกต้องซะงั้น นึกขึ้นได้ว่าเคยเจอกรณีนี้บ้างแล้วเลยค้นดูในบล็อกนี้ แล้วก็รู้ว่า Crystal Report ใช้ Between ไม่ได้นะ มันต้องเป็น  In Date() ร่วมกับ To Date()   จัดการตามนั้นเรียบร้อย รันไปอีกก็เจออีกว่าต้องแยกวันที่ใหม่ โอเคแยกก็แยก ลองทดสอบโค๊ดด้านล่างนี้เพื่อแยกเดือน ออกมาดูผลลัพธ์   Dim txtMyDate As String txtMyDate = "2014-05-21" MsgBox Left(txtMyDate, 6, 2) ทำไม? ทำไม? error อยู่นั่นแหละ ตูผิดตรงไหนเนี่ย ก็แค่ให้แสดงเดือนจากวันที่ที่ก ำหนด "โดยตัดจากด้านซ้าย ตัวที่ 6 ไปอีก 2 ตัว" ฮือๆๆๆ เวรกรรม... ตัดแบบนี้เขาไม่เรียกว่าตัดจากซ ้ายไปกี่ตัวหรอกนะ เขาเรียกว่าตัดจากตำแหน่งไหน ไปกี่ตัว   เขาใช้ Mid() กันเว้ยเฮ้ย .\ /.    

UBUNTU 14.04 กับการติดตั้งโปรแกรมเพื่อเขียน PHP (5.3) ด้วย XAMPP For Linux

1) ติดตั้ง lampp โดยเลือกแพกเกจที่มี PHP เวอร์ชั่น 5.3.8 1.1) ให้ดาวน์โหลดไฟล์จากเว็บ https://www.apachefriends.org/download.html เลือกเวอร์ชั่น xampp-linux-1.7.7.tar.gz ดาวน์โหลดเสร็จย้ายไปที่ home 1.2) แตกไฟล์ไปที่ /opt     sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /opt 1.3) เริ่มทำงาน     sudo /opt/lampp/lampp start 1.4) กำหนดรหัสผ่าน     sudo /opt/lampp/lampp security อ้างอิง : http://www.youtube.com/watch?v=xaDzyo0ObvU&list=PLN-8Ywrbia66ZmYKdeu7aPEMAzd4M82IT&index=2 2)กำหนดสิทธิ์ให้เรียกไฟล์ได้ 2.1 To change all the directories to 755 (-rwxr-xr-x):     find /opt/lampp/htdocs -type d -exec chmod 755 {} \; 2.2 To change all the files to 644 (-rw-r--r--):     find /opt/lampp/htdocs -type f -exec chmod 644 {} \; อ้างอิง : http://stackoverflow.com/questions/3740152/how-to-set-chmod-for-a-folder-and-all-of-its-subfolders-and-files-in-linux-ubunt 3) ตั้งค่า...

ก้าวแรก กับอาชีพโปรแกรมเมอร์

ทำงานมาก็สี่ปีแล้วยังไม่มีแฟ้มสะสมผลงานของตัวเองเลย ถ้าจะให้ไปแข่งกับใครเขาผมคงสู้ไม่ได้เลยแม้แต่น้อย ยิ่งถ้าเป็นเมืองใหญ่ก็คงจะตกกระป๋องไปตามระเบียบ ย้อน กลับไปเมื่อตอนจบมาใหม่แอบหวั่นใจ ไม่รู้จะไปเป็นช่างซ่อมคอมพิวเตอร์ที่ไหนได้บ้าง เพราะงานหายากเหลือเกินและไม่อยากจากบ้านเกิด ไม่อยากเอาชะตาชีวิตน้อยๆไปฝากไว้กับเมืองใหญ่ ส่วนตัวแล้วให้ความสนใจกับ PHP เป็นพิเศษแล้วก็พอที่จะเดินบนสายทางนี้ได้บ้าง "น้องรู้จัก jQuery มั้ย" คำถามแรกที่ทำให้ผมสูญเสียความมั่นใจไปเลยทีเดียว "น้องลองไปศึกษาดูนะ อาทิตย์หน้ามาสมัครใหม่" ผม ไม่กลับไปที่นั่นอีกเลย คำถามมันวนเวียนอยู่ในหัวตลอด ผมค้นหาทั้งในอินเตอร์เน็ต และซื้อหนังสือมาอ่านจนสามารถเรียกความมั่นใจกลับคืนมาได้อีกนิดนึง แล้วบริษัทรถยนต์ก็เปิดรับ PHP Programmer ตอนแรกในใจก็คิดว่าคงจะแค่รับไว้ดูแลเว็บไซต์ แต่มันต่างจากที่ผมคิดอย่างมาก วันสอบสัมภาษณ์ ได้ทำทั้งข้อเขียน และเขียนโปรแกรมตามโจทย์บนกระดาษ A4 แหม่เปิดหนังสือพลิกจนกระดาษแทบฉีก ไม่พอตอนให้นำเสนอผลงานที่สะสมมาก็มีแต่โปรเจ็กต์ที่ทำค้างไว้ เอามารันบน PHP5.2 เออเร่อกระจ...

การเขียนโปรแกรม PHP แม้จะเปลี่ยนไปใช้ OOP แต่ฟังก์ชั่นก็ยังสำคัญ

หลังจากที่ได้แนะนำให้ฝึกเขียน PHP แบบ OOP ไปแล้วก่อนหน้านี้ เริ่มรู้สึกว่าบางทีอาจจะมีการเข้าใจอะไรผิดไป เพราะบทความส่วนใหญ่จะบอกให้เขียน PHP แบบคลาส ใช้แทนฟังก์ชั่นแบบเดิมๆดีกว่า แต่พอเอาเข้าจริงบางครั้ง การรู้สึกเป็นอะไรที่ค่อนข้างยุ่งยากเหมือนกัน เมื่อต้องนำฟังก์ชั่นหลักที่ใช้งานบ่อยๆ มาเปลี่ยนเป็นคลาส เวลาเรียกใช้ก็ต้องประกาศตัวแปรออบเจ็กต์ เช่น $dateObj = new dateFormat();  จากนั้นถึงจะเรียกเมธอดต่างๆในคลาส (ก็คือฟังก์ชั่นที่อยู่ในคลาสนั่นเอง) มาใช้งานได้ พักหลังมานี้เลย เริ่มมองเห็นความสะดวกและประโยชน์ของการใช้งานฟังก์ชั่น  นั่นก็คือเราไม่จำเป็นต้องจับฟังก์ชั่นของเราไปแปลงร่างกลายเป็นคลาสเพื่อให้ดูสวยหรูโดยไม่จำเป็น เน้นไปที่ฟังก์ชั่นเฉพาะแต่ละเพจก็พอ เช่น ฟังก์ชั่นเรียกข้อมูลมาแสดง ฟังก์ชั่นตัดเติมแต่งข้อความ ฟังก์ชั่นคำนวณต่างๆเฉพาะหน้า แบบนี้ควรที่จะเอามาทำเป็นคลาส เพื่อสะดวกในการอ้างอิงข้อมูลระหว่างประมวลผล แต่ถ้าเป็นฟังก์ชั่นหลักๆ เช่นการแปลง วันที่ ปี พ.ศ. หรือจัดรูปแบบข้อความ อะไรที่ใช้บ่อยๆ ก็ไม่ต้องไปทำเป็นคลาสก็ได้ครับ เพื่อความสะดวกในการเรียกใช้งาน PHP กับก...

PHP CI MANIA