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

บทความ

กำลังแสดงโพสต์จาก มีนาคม, 2018

การเชื่อมข้อมูลแต่ละคอลัมน์ด้วย Tab จะใช้เครื่องหมาย "\t" เป็นตัวคั่น

การใช้ Tab เป็นคั่น เราจะแทรก "\t" เข้าไปยังจุดที่ต้องการต่างหาก โดยไม่เพิ่มเข้าไปกับ "" ชุดเดิมของข้อมูล เช่น เชื่อม "piece1" กับ "piece2"  ก็จะเขียนเป็น "piece1" . "\t" . "piece2" ตัวอย่างการเชื่อมข้อมูล <?php // Example 1 $pizza  = "piece1"; $pizza .= "\t" . "piece2"; $pizza .= "\t" . "piece3"; $pizza .= "\t" . "piece4"; $pizza .= "\t" . "piece5"; $pizza .= "\t" . "piece6"; echo "<b>Join wiht Tab</b><p>$pizza</p>"; echo "<textarea cols=60>$pizza</textarea>"; $pieces = explode("\t", $pizza); echo '<br/><h3>Explode : tab</h3>'; echo '<pre>'; print_r($pieces); echo '</pre>'; ?> ผลลัพธ์ ถ้ากรณีใช้ใน While ลูปก็ต้องมีการขึ้นบรรทัดใหม่ด้วย "\n" <?php $pizza = ...

โปรเจ็กต์เรียนรู้คำสั่งจัดการไฟล์ กับ PHP Debugger

โปรเจ็กต์ PHP Debugger นี้ จัดทำขึ้นเพื่อศึกษาการทำงานของ PHP ร่วมกับ ฟังก์ชั่นจัดการไฟล์ การใช้งาน ฟังก์ชั่นจัดการข้อความ การใช้งานฟังก์ชั่นอาร์เรย์ ตลอดจนถึงฟังก์ชั่นต่างๆของ PHP ที่มีแหล่งอ้างอิงหลักมาจากเว็บไซต์ StackOverFlow.Com ที่เราสามารถเข้าถึงวิธีแก้ไขปัญหาได้ตลอดเวลา โดยมีจุดประสงค์หลัก คือ ใช้สำหรับแก้ไขข้อผิดพลาดในส่วนของซอร์สโค้ด PHP เวอร์ชั่นเก่า ที่มักจะพบเจอได้บ่อยๆ เมื่อนำมารันกับ PHP เวอร์ชั่นใหม่ โดยจะยึดเวอร์ชั่น 5.5 เป็นหลัก ซึ่งปัญหาที่มักจะพบเจอเมื่อรันโค้ดก็คือ        - Warning: mysql_select_db(): Access denied        - Deprecated: mysql_connect()        - Call to a member function query() on a non-object        - Undefined index และอาจจะมีปัญหาอื่นๆอีก ที่จะพบเจอเพิ่มเติมเมื่อลองทดสอบกับโปรเจ็กต์กลุ่มเป้าหมายหลายๆตัว จึงต้องอาศัยการสร้างตารางตัดสินใจ ( Decision Tables ) ขึ้นมาเพื่อใช้จัดเก็บเงื่อนไขการตรวจสอบ และวิธีแก้ไขปัญหาของปัญหาแต่ละรายการที่พบเจอ โครงส...

PHP กับการออกแบบระบบให้คะแนน การแข่งขันกีฬา "บาสเกตบอล" - Basketball Score Board

เขียนเมื่อ @2015-10-16 หลังจากเริ่มแข่งขันบาสเกตบอล ฟรีสไตล์ 3 ต่อ 3 ก็ได้พบว่าการนับคะแนนนั้น ไม่ว่าจะจดกระดาษ หรือพลิกสกอร์บอร์ดก็ตาม ไม่สามารถเก็บสถิติของผู้เล่นแต่ละคนในการแข่งขันแต่ละครั้งได้ ทำไมผมถึงคิดถึงเรื่องไร้สาระนี้ขึ้นมา (ผมเรียกว่าไร้สาระเพราะโปรแกรมเมอร์ส่วนใหญ่ใช้เวลาในการเขียนโค้ดเพื่อให้ได้เงินมา เรื่องที่ต้องเสียเวลาแต่ไม่ได้อะไรเลยเขาคงไม่ทำกัน ^^") ก็เพราะว่า ผมอยากสร้างแรงจูงใจให้กับน้องๆที่มาเล่นบาสเกตบอลด้วยกันทุกเย็น ให้เกิดความกระตือรือร้นที่จะพัฒนาตัวเอง (เพราะช่วงหลังๆคนเริ่มเล่นน้อยลงไป ส่วนหนึ่งอาจจะเพราะติดสอบช่วงกลางภาค)

เปิด Notepad++ ขึ้นมาหลายๆหน้าต่าง และวิธีเปลี่ยนสี เปลี่ยน Theme มห้ notepad++

1. เริ่มจากตั้งต่างที่ Tool > Preference.. 2. ด้านซ้ายเลือกรายการ Multi-Instance ด้านขวาเลือก Always in multi-instance mode     กด Close เมื่อตั้งค่าเรียบร้อย 3. ไปที่ไอคอนโปรแกรม Notepad++ คลิกขวาเลือก Properties 4. เพิ่มคำว่า   -multiInst  ต่อท้ายหลังเครื่องหมายฟันคู่  กด OK เพื่อเสร็จสิ้น 5. ดับเบิ้ลคลิกเพื่อเปิด Notepad++ เพื่อเปิดโปรแกรมขึ้นมา 2 หน้าต่าง 6. ด้านซ้ายเอาไว้เขียน JavaScript ก็ปรับธีมให้สีต่างกัน เพื่อจดจำง่ายเวลาสลับไปมา อีกอย่างคือปรับสไตล์ของโค้ดในแต่ละส่วนตามชอบได้ด้วยเมนู Settings > Style Configurator... 7. เลือก ธีม ที่ต้องการ ชอบโทนสว่าง โทนมืดก็มีให้เลือกหลายแบบ 8. หากเลือกธีมแล้ว ยังไม่ถูกใจกับสีของโค้ดในแต่ละส่วน ก็สามารถปรับเพิ่มเติมได้ 9. ในหน้าต่างที่ 2 ก็ทำเช่นเดียวกัน แต่แนะนำให้เป็นคนละโทนสีกัน เพื่อความง่ายในการจดจำ     JavaScript Window     PHP Window ที่มา https://superuser.com/questions/549782/want-two-instances-windows-of-notepad PHP...

PHP อ่านไฟล์ CSV กับปัญหาภาษาไทย

ให้ลองแทรกคำสั่งเหล่านี้ก่อนเริ่มการทำงาน setlocale ( LC_ALL, 'en_US.UTF-8' ); หากยังไม่ได้ให้ลอง setlocale(LC_ALL, 'th_TH'); และ  setlocale(LC_ALL, 'th_TH.utf-8'); และถ้ายังไม่ได้ สุดท้ายให้เปลี่ยนเป็น setlocale ( LC_ALL, 'Thai' ); แต่ทั้งหมดที่กล่าวมานี้ โครงสร้างฐานข้อมูลของเราควรเป็น utf8 อยู่แล้ว แสดงผลภาษาไทย PHP กับ MySQL ด้วยฟังก์ชั่นของ mysqli (UTF8) http://www.thaicreate.com/community/php-mysql-mysqli-thai-utf8.html รวมวิธีแก้ปัญหา ภาษาไทยอ่านไม่ออก ใน PHP,MySQL https://seenual.com/ภาษาไทยอ่านไม่ออก-ใน-phpmysql/ แหล่งอ้างอิง http://www.thaicreate.com/php/php-read-csv-files.html https://forum.joomla.org/viewtopic.php?t=82423 https://blog.kentreez.com/function-fgetcsv-with-thai-language/ http://www.leknarm.com/2010/03/fgetcsv-php.html http://nevikup.blogspot.com/2012/10/fgetcsv.html http://php.net/manual/en/function.setlocale.php PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขีย...

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

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

แจกโค้ด 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 เป็นการคิดราคาทุนถัวเฉลี่ยของสินค้าคงเหลือปลายงวด นั่นก็คือ บันทึกการรับเข้าด้วยราคาต่อหน่...

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...

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

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  จะต่างกัน เพราะในตารางน...

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