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

บทความ

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

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data

วิธีแก้ปัญหา SyntaxError: JSON.parse: unexpected non-whitespace character ปัญหาที่เกิดขึ้นคือ เมื่อมีการ submit ผ่าน iframe และให้ PHP คืนค่าเป็น JSON $json = json_encode(array(                                     "is_successful" => FALSE,                                     "message" => $message )); echo $json; ผลที่ได้คือ หน้าเว็บค้าง ไม่มีอะไรตอบสนองหรือทำงานต่อจากนั้นเลย และเมื่อเปิด console ขึ้นมาดูก็พบข้อความแจ้ง error ดังนี้ SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 921 of the JSON data ทั้งที่ค่าคืนกลับมาใน iframe ก็ปกติดี โค้ดในส่วนของการดึงข้อมูลใน iframe หลังจาก Submit เรียบร้อยมีดังนี้ var c = 0; $("#post_iframe").on('load',function() { c++; if(c==1){ iframeContents = this.contentWindow.document.body.innerHTML; var...

PHP CI MANIA : PHP CodeIgniter Generator โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

ราคาแต่ละเวอร์ชั่น   (ราคา 1,500 .- / 2,990.- / 3,990 .-)        จะเริ่มที่เวอร์ชั่น 0.1 ถึง 0.9 โดยความสามารถเริ่มต้นคือ        1) หน้าแสดงรายการทั้งหมด จะสามารถค้นหา และแบ่งหน้าได้อัตโนมัติ        2) หน้าเพิ่มข้อมูล จะสามารถกำหนดจำนวน INPUT ที่ต้องการป้อนข้อมูลได้        3) หน้าแสดงรายละเอียดเรคอร์ด สามารถคลิกเลือกรายการที่ต้องการดูข้อมูลทั้งหมดได้        4) หน้าแก้ไขข้อมูล สามารถคลิกแก้ไขข้อมูลในแต่ละเรคอร์ดจากหน้าแสดงรายการได้        5) การลบข้อมูล สามารถคลิกลบรายการในแต่ละเรคอร์ดได้        6) มีระบบ Login และบริหารจัดการข้อมูลสมาชิกได้        นอกจากนี้ระบบยังรองรับส่วนของการ JOIN TABLE อื่นๆได้อีกด้วย เช่น ฟิลด์ที่เก็บรหัสสมาชิก จะสามารถ JOIN ไปยังตารางสมาชิก เพื่อดึงชื่อมาแสดงผลได้ด้วย        และความสามารถอีกอย่างที่จำเป็นอย่างยิ่งนั่นก็คือ รองรับการเชื่อมโยงกับตา...

K Plus จ่ายค่าไฟฟ้าส่วนภูมิภาค ผ่านแอพฯ PEA Smart Plus

การทำงานร่วมกันของ PEA Samrt Plus กับ K PLUS - ธนาคารกสิกรไทย หลังจากที่พยายามหาเมนูจ่ายค่าไฟ(การไฟฟ้าส่วนภูมิภาค) อยู่หลายครั้งหลายหน พยายามจ่ายด้วยเมนู การไฟฟ้านครหลวง อยู่หลายครั้งก็ไม่สำเร็จ (จะจ่ายได้ไงเล่า มันคนละส่วนกันกับการไฟฟ้าส่วนภูมิภาค) ก็ลองค้นหาใน Google และเลื่อนไปเปิดกระทู้พันทิปมาอ่าน ก็ได้ความว่า ต้องติดตั้งแอพ PEA Samrt Plus ก่อนจึงจะสามารถชำระเงินได้ หลังจากติดตั้งเรียบร้อย เปิดขึ้นมาก็จะเจอส่วนของการลงทะเบียน เมื่อลงทะเบียนเรียบร้อยก็มาเพิ่มสถานที่ใช้ไฟฟ้า - จะแสกน QR Code/Barcode - หรือ จะกรอกเองตามตัวอย่างบนบิลค่าไฟก็ได้ กรอกข้อมูลเรียบร้อยให้สังเกตข้อมูลชื่อเจ้าของผู้ใช้ และยอดค้างชำระว่าถูกต้องหรือไม่ ถ้าถูกต้องกดที่เข้าไปเพื่อชำระค่าไฟค้างจ่าย หรือจะเข้าไปที่เมนู ชำระค่าไฟฟ้า ด้านล่างก็ได้ ถ้ามีค่าไฟฟ้าค้างจ่าย จะปรากฏกลางจอภาพให้เลือก (แต่ในภาพด้านล่างนี้ชำระไปแล้วก็เลยว่างเป่า) เมื่อกดเลือกรายการที่ต้องการชำระเรียบร้อย ให้เลือก บัญชีธนาคาร หลังจากกดเลือกบัญชีธนาคารแล้ว จะมีรายชื่อธนาคารให้เลือก - ...

ตัวอย่างการใช้ HTML5 Canvas วาด ER Diagram

มาดูตัวอย่างการใช้ Canvas วาด ER Diagram กันครับ ถ้าดูในโค้ดด้านล่างนี้ จะสังเกตเห็นว่าส่วนของ //LEFT หรือตาราง Master และส่วนของ //RIGHT หรือตาราง Detail ทั้งสองส่วนนี้ จะทำงานซ้ำๆกัน ซึ่งถ้านำไปใช้จริงก็จะเป็นการดึงฟิลด์ของตารางที่เกี่ยวข้องออกมาวนลูป เพื่อแสดงชื่อฟิลด์ในช่องแต่ละช่อง ตามจำนวนฟิลด์ที่มีในตารางแต่ละตาราง ตัวอย่างโค้ดวาด ER Diagram <!DOCTYPE HTML> <html>   <head>     <style>       body {         margin: 0px;         padding: 0px; background-color : #eeeeee; text-align : center;       } canvas#myCanvas{ border: 1px solid #cccccc; background-color : #ffffff; }     </style>   </head>   <body>     <canvas id="myCanvas" width="1024" height="600"></canvas>     <script> var canvas = document.getElementById('myCanvas'); var context = canvas.getConte...

Bootstrap Flowchart - สร้างโฟลวชาร์ตระบบแบบง่ายๆ

Bootstrap Determination Flowchart ตัวอย่างการทำโฟลชาร์ตแบบง่ายๆ ด้วย Bootstrap Frmaework ซึ่งน่าจะนำไปใช้ประโยชน์ต่อการสร้างระบบจัดการโปรเจ็กต์ของเราได้ และสิ่งที่น่าสนใจอีกอย่างคือ เมื่อนำไปเชื่อมโยงกับระบบ CodeIgniter Generator ที่ผมกำลังสร้างมานั้น อาจจะสามารถสร้างระบบการจัดการโปรเจ็กต์พร้อมสร้างโครงสร้างไฟล์ที่จำเป็นได้เสร็จสรรพ ที่มา : https://bootsnipp.com/snippets/a36yo PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น สนใจสั่งซื้อราคาสุดคุ้ม >>  http://fastcoding.phpcodemania.com/

PHP จัดตารางการแข่งขันฟุตบอล / บาสเกตบอล / กีฬาประเภทพบกันทุกทีมเหย้า-เยือน

PHP generate football schedule ในโค้ดตัวอย่างด้านล่างนี้ จะเป็นการวนลูป for อยู่ด้วยกันทั้งหมด 3 รอบ for ครั้งที่ 1  กำหนดให้นับแค่ 2  ในลูปแรกจะเป็นทีมเหย้า ในลูปที่สองจะเป็นทีมเยือน for ครั้งที่ 2 จะนับตามจำนวนทีม ในตัวอย่างมี 8 ทีมก็จะนับจนกว่าจะครบ 8 ทีม for ครั้งที่ 3 จะนับตามจำนวนทีมคู่แข่ง ในตัวอย่างมี 8 ทีม ก็จะพบคู่แข่งอีก 7 ทีม  (ซึ่งพบกัน 2 ครั้ง เหย้า-เยือน ก็จะเท่ากับ 14 ครั้ง) ข้อสังเกต เมื่อขึ้น Day 9 จะมีการสลับเอาทีมเยือนขึ้นมาเป็นทีมเหย้า Team 2 จึงเป็นเจ้าบ้านรับการมาเยือนของ Team 1 แทน สำหรับโค้ดที่ใช้เป็นตัวอย่าง มีดังต่อไปนี้ [PHP CODE] <?php $teams = array( 'Team 1', 'Team 2', 'Team 3', 'Team 4', 'Team 5', 'Team 6', 'Team 7', 'Team 8' ); $team_logo[0] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-15-512.png'; $team_logo[1] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-16-512.png';...

JavaScript เปลี่ยนตัวพิมพ์ใหญ่ให้กับอักษรตัวแรกเหมือน ucfirst() ของ PHP

JavaScript กับการกำหนดตัวแรกเป็นตัวพิมพ์ใหญ่ สร้างฟังก์ชั่น JavaScript เพื่อทำให้ตัวแรกเป็นตัวพิมพ์ใหญ่ function jsUcfirst(string)  {      return string.charAt(0).toUpperCase() + string.slice(1); } วิธีการเรียกใช้งาน <input name="controller_name" onchange="this.value=jsUcfirst(this.value)" /> โค้ดด้านบนนี้จะทำงานเมื่อเกิดการเปลี่ยนแปลงข้อมูลในช่องกรอกข้อมูลที่ชื่อ controller_name จะเรียก onchage ขึ้นมาทำงาน this.value=jsUcfirst(this.value) คือคำสั่ง JavaScript ที่กำหนดให้ค่า value ของช่องกรอกข้อมูลตัวนี้ มีค่าเท่ากับค่าที่เปลี่ยนตัวแรก เป็นตัวพิมพ์ใหญ่ไปแล้ว มาดูกันทีละขั้นตอนว่าเกิดอะไรขึ้นบ้างในฟังก์ชั่นนี้ เราจะสามารถแยกออกได้ 3 เหตุการณ์ด้วยกัน คือ เหตุการณ์ที่ 1 => string.charAt(0) เหตุการณ์ที่ 2 => .toUpperCase() เหตุการณ์ที่ 3 => + string.slice(1); สมมติว่าเราส่งคำว่า members เข้าไปในฟังก์ชั่น jsUcfirst() string.charAt(0) จะทำการตัดอักษรตัวแรกออกมาจาก string จะได้คำว่า m ออกมา .toUpperCase() จะทำงานต่อทันทีหลังจาก...

มันเป็นเรื่องของเหตุผล ที่เมื่อผลลัพธ์ Callback มาแล้วไม่มีฟังก์ชั่นไหน Validate สิ่งที่ได้รับกลับมาเท่านั้นเอง

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

รวบรวมข้อมูลสำหรับสร้าง เครื่องผสมเมนูเครื่องดื่มอัตโนมัติ - ชงกาแฟอัตโนมัติ

แนวคิดจากคลิปวิดีโอ เครื่องกดน้ำอัดลม DIY ไอเดียสำหรับต่อยอด สร้างวงจรควบคุมระยะเวลาปั๊มด้วยการจ่ายไฟผ่านระบบ ไมโครคอนโทรลเลอร์ (Micro Controller) เพื่อเลือกเมนูแต่ละเมนู ที่กำหนดระยะเวลาของการจ่ายไฟให้ปั๊มแต่ละตัวต่างกัน และกำหนดระดับความหวานได้หลายระดับ ซึ่งแต่ละระดับก็จะมีระยะเวลาการจ่ายไฟที่ต่างกัน ตัวอย่าง ขา 1 = ปั๊มจ่ายน้ำเชื่อม ขา 2 = ปัมจ่ายนมสด ขา 3 = ปั๊มจ่ายนมข้นหวาน ขา 4 = บลูฮาวาย ขา 5 = แคนตาลูป หวานระดับ 1 ขา 1 จ่ายไฟออกหน่วงเวลา 3 วินาที หวานระดับ 2 ขา 1 จ่ายไฟออกหน่วงเวลา 5 วินาที หวานระดับ 3   ขา 1 จ่ายไฟออกหน่วงเวลา 7 วินาที หวานระดับ 4   ขา 1 จ่ายไฟออกหน่วงเวลา 9 วินาที หวานระดับ 5   ขา 1 จ่ายไฟออกหน่วงเวลา 12 วินาที เมื่อเราจ่ายไฟไปยังปั๊มที่การหน่วงเวลาต่างกัน ระยะเวลาที่ปั๊มทำงานก็จะต่างกัน ซึ่งปริมาณน้ำเชื่อมที่ได้ของแต่ละระดับก็จะต่างกันไป และเมื่อเลือกเมนูอะไรไว้ ปั๊มที่เลือกไว้ก็จะทำงานตามระยะเวลาที่กำหนด และเมื่อครบตามจำนวนปั๊ม ก็จ่ายไฟเลี้ยงไปยังเครื่องผสมเครื่องดื่ม Self Stirring Mug ...

PHP MOD การหารเอาเศษ การคิดราคาสินค้าแบบแพ็ก แบบชิ้น

การคิดราคาสินค้าแบบแพ็ก    หลักการเบื้องต้นก็คือ 1. คิดราคาแบบเป็นแพ็ก $pack_buy = floor($customer_buy / $product_xx_pack_qty); //ปัดเศษทิ้ง $total_pack_buy_price = $pack_buy * $product_xx_pack_price;//คิดราคาแบบ pack ใน PHP เราจะใช้ฟังก์ชั่น floor() เพื่อปัดเศษทิ้ง เอาเฉพาะที่ครบจำนวนแพ็กเพื่อไปคูณกับราคาต่อแพ็ก แต่ถ้าไม่ครบก็จะนำไปคำนวณราคาต่อแพ็กแล้วได้ 0 2. หาราคาต่อชิ้น ที่เหลือจากการหารเพื่อหาแบบแพ็ก $piece_buy = $customer_buy % $product_xx_pack_qty;//หารแบบเอาเศษ $piece_price = $piece_buy * $product_xx_price;// ราคาของส่วนที่เหลือจากแพ็ก     แน่นอนว่าถ้าซื้อไม่ถึงแพ็ก ก็จะเป็นจำนวนชิ้นทั้งหมด  แต่ถ้าซื้อครบแพ็กพอดี จำนวนชิ้น ก็จะเป็น 0 เพราะคิดราคาแบบแพ็กเท่านั้น แต่ถ้าซื้อเกินแพ็กเศษเท่าไหร่ก็เอาไปคูณกับราคาต่อชิ้น

PHP เปรียบเทียบวันที่ หาผลต่างระหว่างวันที่ 2 วัน ด้วยฟังก์ชั่น DateTime

ในตัวอย่างนี้ เราจะหาผลต่างระหว่างวันที่ 2 วันด้วยฟังก์ชั่น PHP DateTime Class ซึ่งจะมีให้เรียกใช้ตั้งแต่ PHP เวอร์ชั่น  5.2.0 ขึ้นไป กำหนดให้ตัวแปร PHP ชื่อ $date1 และ $date2 รับค่าจากการส่งค่าแบบฟอร์มแบบ POST โดยจะใช้ isset() ตรวจสอบค่าก่อนว่าได้ส่งมาหรือไม่ ถ้ายังไม่ได้ส่งค่าจากแบบฟอร์มมา จะเซ็ตให้เป็นค่าว่าง เพราะกรณีเปิดหน้าเว็บขึ้นมา จะยังไม่ได้ส่งค่าใดๆ เมื่อได้ค่าจากแบบฟอร์มเราจะเรียกคลาส DateTime() ใน PHP คำนวณค่าให้ด้วยเมธอด/ฟังก์ชั่น diff() จากนั้นก็เซ็ต format() ให้อยู่ในรูปแบบที่ต้องการ ซึ่งอ่านเพิ่มเติมเกี่ยวกับรูปแบบได้ที่ Supported Date and Time Formats http://php.net/manual/en/datetime.formats.php สำหรับซอร์สโค้ด PHP ที่ใช้ทั้งหมดมีดังตัวอย่างต่อไปนี้ [ PHP Code ] <?php $date1 = isset($_POST['date1']) ? $_POST['date1'] : ''; $date2 = isset($_POST['date2']) ? $_POST['date2'] : ''; $datetime1 = new DateTime($date1); $datetime2 = new DateTime($date2); $interval = $datetime1->diff($dateti...

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

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

แจกโค้ด 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...

จัดระเบียบโค้ด ใน 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 ระบบบริหารจัดการ พล็อตนิยาย - ตอนที่ 1

PHP Fiction Management System   โปรเจ็กต์นี้จะสร้างเป็น "ระบบบริหารจัดการพล็อตนิยาย" แบบง่ายๆ มาเล่าสู่กันฟังครับ มีอยู่ช่วงหนึ่งที่ผมสนใจการเขียนนิยาย และค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการเขียนนิยาย และได้พบกับโปรแกรมหนึ่งที่ช่วยงานด้านการเขียนนิยายให้เป็นเรื่องที่ง่ายขึ้น แต่จากที่ได้อ่านรีวิวแล้วดูเหมือนว่า โปรแกรมช่วยเขียนนิยายนี้ ไม่จะไม่ค่อยรองรับภาษาไทย แต่ผมก็ยังไม่ได้ลองมาดาวน์โหลดมาลองใช้งานดูนะครับ แต่รู้สึกชอบเครื่องมือนี้ เลยอยากลองพัฒนาโดยถอดคุณสมบัติพื้นฐานมาใช้งานดู ว่าจะใช้กับงานเขียนนิยายได้จริงรึเปล่า ตัวอย่างระบบจัดการพล็อตเรื่อง เพื่อช่วยงานเขียนนิยาย หลังจากที่ได้นั่งคิดนอนคิด และหลับไปฝันไป จนในที่สุดก็ได้ฐานข้อมูลระบบบริหารจัดการพล็อตนิยายมาคร่าวๆ มาจนได้ โครงสร้างฐานข้อมูลตอนนี้อาจจะขี้เหร่ไปบ้าง แต่ในอนาคตก็คงจะพัฒนากันต่อไป   ตารางที่จะต้องสร้าง มีทั้งหมด ดังนี้ 1. รายชื่อนิยายทั้งหมด 2. แนวนิยายที่เขียน 3. พล็อตของแต่ละเรื่อง 4. ฉากเหตุการณ์ในแต่ละพล็อต 5. เนื้อเรื่องในแต่ละฉาก 6. รายชื่อตัวละครในนิยา...

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

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

PHP + Fullcalendar กับ MySQL

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

PHP กับจัดการฐานข้อมูลหมวดหมู่สินค้า MySQL แบบใช้ตารางเพียงตารางเดียวเท่านั้น

การเขียนโปรแกรม PHP แสดงหมวดหมู่สินค้า สำหรับโครงสร้างฐานข้อมูลแบบทั่วไปเมื่อมีรายการย่อย เราจะใช้หลักการ One -> Many คือมี 1 ตารางหมวดหมู่หลัก และมีอีก 1 ตารางเป็นหมวดหมู่ย่อย แต่ปัญหาของกรณีแยกตารางออกจากกันนี้ ตัวผู้เขียนพบปัญหาว่าเมื่อมีหมวดหมู่ย่อยลงไปอีก  3 ชั้นบ้าง 4 ชั้นบ้าง หรืออาจจะมีหมวดย่อยไม่จำกัด ก็จะทำให้การเขียนโปรแกรมนั้นยากขึ้น เช่น การเขียนคำสั่ง SQL JOIN เพื่อดึงข้อมูลตารางที่ 2 มาแสดง SELECT        id, name FROM        tb_cate1 AS tbMaster INNER JOIN        tb_cate2 AS tbDetail ON tbMaster.id= tbDetail.ref_id WHERE        {เงื่อนไขที่ใช้ค้นหา} และเมื่อมีการเชื่อมหลายๆตาราง ก็จะทำให้หน้าเว็บทำงานได้ช้าลง (อ่านเรื่อง " การทำ Index ให้ MySQL Database เพื่อเพิ่มความเร็ว ") ดังนั้นผู้เขียนจึงได้ทำการปรับปรุงตาราง ให้เหลือตารางเดียว และกำหนดฟิลด์ ref_parent_id สำหรับใช้อิงหมวดหมู่หลักของรายการนั้นๆ ซึ่งถ้ามีค่าเป็น 0 แสดงว่าเป็นหมวดห...

PHP คืออะไร : มีหลักการทำงาน และสิ่งที่น่าสนใจอะไรบ้าง?

PHP คืออะไร? PHP ย่อมาจากคำว่า "Personal Home Page Tool" (ปัจจุบันได้เพิ่มเติมคำย่อใหม่โดยรวมกับตัวย่อเป็น  PHP : PHP Hypertext Preprocessor ) ซึ่งเป็นภาษาประเภท Script Language ที่ทำงานแบบ Server Side Script กระบวนการทำงานจะทำงานแบบ โปรแกรมแปลคำสั่ง  interpreter คือแปลภาษาทุกครั้งที่มีคนเรียกสคริปต์ ข้อดีคือ ไม่ต้องนำไปประมวลผลใหม่ (Compiler) เมื่อจะนำโปรแกรมไปใช้งาน หรือจะอัพเดตเวอร์ชั่นของโปรแกรม สามารถอัพโหลดขึ้นไปทับไฟล์เดิมแล้วใช้งานได้ทันที ขอเสียที่ต่างกันอย่างชัดเจนก็คือ กรณี Syntax ผิดจะรู้ก็ต่อเมื่อมีผู้ใช้งานเจอบั๊ก ภาษา PHP  จัดอยู่ในประเภท การเขียนโปรแกรมบนเว็บ (Web-based Programming) เพราะเราจะเก็บโค้ดคำสั่ง หรือสคริปต์ทั้งหมดที่เขียนขึ้นมาไว้บนเครื่องเซิร์ฟเวอร์ที่เดียว (Web Server)  และให้ผู้ใช้งาน (Client) เรียกใช้งานโปรแกรมผ่านเว็บเบราเซอร์ต่างๆ เช่น Internet Explorer, Mozilla Firefox, Google Chrome, Opera, Safari ฯลฯ เพื่อนำข้อมูลมาแสดงผลที่หน้าจอของผู้ใช้แต่ละคนนั่นเอง PHP มีอะไรน่าสนใจบ้าง? เรามาลองพูดถึงเรื่องของการสร้...

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 จะต้...

PHP CI MANIA : ตอนที่ 16 วิธีสร้างเว็บเพจที่มีแบบฟอร์มคำนวณผลรวมอัตโนมัติ เมื่อป้อนข้อมูลในช่อง INPUT

การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox หากเขียนโค้ดเองก็เพียงไม่กี่บรรทัด แต่ถ้าหากใช้ PHP CI MANIA เราสามารถเพิ่มการตั้งค่าได้ดังนี้ 1. ในแท็ป " ตั้งค่า " เลื่อนไปส่วนที่ 5 ด้านล่างสุด " ข้อมูลตารางรายการ ( Detail ) " 2. เพิ่ม INPUT สำหรับแสดงราคารวม โดยคลิกที่ปุ่มสีเขียว ในตัวอย่างนี้จะสร้างไว้ต่อจาก ฟิลด์ ราคา  โดยกำหนดค่าในช่องคอลัมน์ Name เป็น total_price=>ราคารวม สังเกตุว่าจะมี => คั่นกลาง        ด้านซ้าย total_price ใช้เป็นไอดีอ้างอิงเพื่อนำราคารวมไปแสดงผล        ด้านขวา ราคารวม ใช้เป็นป้ายชื่อหน้าช่องแสดงผลรวม 3. กำหนด Action ให้กับฟิลด์ที่เมื่อเปลี่ยนค่าแล้วจะให้คำนวณผลรวมอัตโนมัติ ในที่นี้คือ ฟิลด์จำนวน 4. กำหนดค่าต่างๆให้กับ Action ของฟิลด์ที่เลือก     4.1  กำหนด Events จะเลือก onkeyup เพื่อจับเหตุการณ์เมื่อพิมพ์ตัวเลขระบุจำนวนสั่งซื้อ ให้คำนวณค่าราคารวมทันที     4.2  INPUT 1  ให้ระบุฟิลด์ที่ใช้ในการคำนวณตัวที่ 1 ที่นี้คือ ฟิลด์จำ...

กด Start ตรง mysql ใน XAMPP ไม่ได้ แก้ไขยังไงดี?

ข้อความ Error ที่ปรากฏดังนี้ 6:37:41  [mysql] This may be due to a blocked port, missing dependencies, 6:37:41  [mysql] improper privileges, a crash, or a shutdown by another method. 6:37:41  [mysql] Press the Logs button to view error logs and check 6:37:41  [mysql] the Windows Event Viewer for more clues 6:37:41  [mysql] If you need more help, copy and post this 6:37:41  [mysql] entire log window on the forums ต้องบอกก่อนว่าเคสนี้เกิดขึ้นเมื่อผมรัน XAMPP แบบ Portable แล้วดันไปขยับสาย USB การเชื่อมต่อก็เลยหลุดไป หลังจากถอดสาย USB แล้วเสียบใหม่ XAMP ก็รันได้แค่ Apache อย่างที่เห็นในภาพ หลังจากนั้นสิ่งที่ทำอย่างแรกก็คือ คัดลอก Error ไปค้นในเว็บแล้วลองทำไปเรื่อยๆ จนกว่าจะหาวิธีได้ xampp MySQL does not start https://stackoverflow.com/questions/18177148/xampp-mysql-does-not-start เว็บแรกทำให้รู้ว่าน่าจะเกี่ยวกับ Port ก็เลยลองเปลี่ยนเป็นพอร์ตอื่นก็ Start ได้ทันที You also need to change port 3306 to 3307 in xampp\php\php.ini...

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