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

บทความ

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

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

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

JavaScript HTML DOM Animation การเคลื่อนย้าย element ในหน้าเว็บ

มาฝึกเขียน JavaScript กันเถอะ  ในตัวอย่างนี้เมื่อคลิกที่ปุ่ม Click Me กรอบสี่เหลี่ยมสีแดงจะเคลื่อนจากตำแหน่งบนซ้าย ไปยังมุมล่างขวา ซึ่งถูกกำหนดพิกัดไว้ที่ 350  if(!pX) pX=350; if(!pY) pY=350; ตำแหน่งกรอบสีแดงจะถูกบวกเพิ่มไปจนกระทั่งครบตามที่กำหนดไว้       if(posY < pY) posY++;       if(posX < pX) posX++;       elem.style.top = posY + 'px';       elem.style.left = posX + 'px';  และในพื้นที่สีเหลืองนี้ ได้กำหนดคำสั่ง OnClick เอาไว้เพื่อให้กรอบสีแดงเคลื่อนไปยังจุดที่คลิก <div id ="container" onclick="sendPos(event)"> ในฟังก์ชั่น sendPos() จะรับค่า event ที่ได้จาก onclick และรับค่าตำแหน่ง offsetX, offsetY เพื่อส่งไปยังฟังก์ชั่น myMove() เพื่อเคลื่อนย้ายสีเหลี่ยมสีแดงไปยังตำแหน่งที่คลิก function sendPos(event){     myMove(event.offsetX  , event.offsetY ); } สังเกตุว่าการเคลื่อนย้ายจะไม่เป็นเส้นตรง เพราะตำแหน่ง X และ Y ไม่เท่ากัน ดังนั้นเมื่อถึงตำแหน่งแนวไหนก่...

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 แสดงว่าเป็นหมวดห...

เว็บ StackOverFlow ใช้งานยังไง จะเอาโค้ดมาใช้งานจากส่วนไหน

StackOverFlow เพื่อนคู่คิดนักเขียนโปรแกรม หลังจากที่เรานำข้อความที่ต้องการไปค้นหาใน Google  จะได้ผลลัพธ์ดังรูปด้านล่างนี้ ผลลัพธ์การค้นหา ให้เลือกบทความจาก StackOverFlow.Com ซึ่งเป็นแหล่งรวมคำตอบทุกคำถามของโปรแกรมเมอร์ทั่วโลกได้พึ่งพาอาศัยกันมาอย่างยาวนาน เมื่อคลิกเข้าไปจะมีจุดสังเกต 4 จุดดังนี้ 1. สังเกตคะแนนโหวตของคำถาม ซึ่งยิ่งมากยิ่งดี ถ้าเป็น 0 กด Back กลับไปหาเข้าหน้าบทความอื่นได้เลย 2. จำนวนคำตอบ Answers อันนี้ช่วยให้เรามีตัวเลือกที่หลากหลายขึ้น 3. จำนวนคะแนนโหวตของแต่ละคำตอบ ช่วยให้เราได้โค้ดที่เวิร์กที่สุด ณ ตอนนั้น 4. ส่วนสุดท้าย เครื่องหมาย เช็คถูกสีเขียว  นั่นหมายถึงเจ้าของคำถามได้รับคำตอบที่พึงพอใจ เมื่อได้โค้ดที่ตรงกับที่ต้องการ หรือใกล้เคียงกับที่กำลังตามหาก็จัดการคัดลอก แล้วแก้ไขให้ตรงกับหน้าโปรแกรมของเราก็เป็นอันใช้ได้ครับ ขอให้สนุกกับการเขียนโปรแกรม PHP โดยมีเว็บไซต์ StackOverFlow.Com เคียงข้างกันตลอดเวลา บทความแนะนำ PHP กับจัดการฐานข้อมูลหมวดหมู่สินค้า MySQL แบบใช้ตารางเพียงตารางเดียวเท่านั้น PHP ...

การเขียนโปรแกรม PHP ดึงข้อมูล VAT จาก Web Service ของกรมสรรพากร ด้วย NuSoap

ตัวอย่างนี้จะเป็นการเขียนโปรแกรม PHP เพื่อตรวจสอบสถานะการจด VAT หรือ ตรวจสอบข้อมูลผู้ประกอบการ โดยเขียนเชื่อมต่อกับ Web Service ของกรมสรรพากร ซึ่งปกติแล้วเราสามารถตรวจสอบได้โดยตรงจากหน้า http://www.rd.go.th/publish/313.0.html    ผลลัพธ์ที่เราใช้งานจะอยู่ในส่วนของ echo 'VAT => TRUE';  และ echo 'VAT => FALSE'; แต่ถ้าหากต้องการนำข้อมูลที่ได้ไปใช้จะอยู่ในตัวแปร $result ที่เก็บค่าแบบหลายมิติ ดังที่ได้แสดงด้วยคำสั่ง print_r($result); หากต้องการข้อมูลในส่วนไหนก็ให้นำไปใช้งานโดยอ้างตามคีย์นั้นๆ เช่น $result['ServiceResult']['vName']['anyType']   จะได้ชื่อของผู้ประกอบการมานั่นเอง ค้นหาเลขผู้เสียภาษีเพื่อทดสอบการทำงานที่เว็บไซต์ http://www.rd.go.th/publish/313.0.html มาเริ่มเขียนโปรแกรมกันเลย <html> <head> <title>WebService VAT</title> </head> <body>   <?php include("nusoap/nusoap.php"); $wsdl = 'https://rdws.rd.go.th/serviceRD3/vats...

มาฝึกเขียน JavaScript กันเถอะ : การใช้ฟังก์ชั่น trim() split() เพื่อเช็คคำทีละบรรทัด

JavaScript ตรวจสอบการเปิด-ปิด PHP tags <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <textarea id="text" rows="5" >   <?php   echo Hello();   ?> </textarea> <input type="button" id="btn_run" value="Run"/> <div id="result"></div> </body> </html> จากโค้ด HTML ด้านบนจะได้ผลลัพธ์ดังนี้ และเมื่อกดปุ่ม Run  จะทำงานในฟังก์ชั่น $('#btn_run').click() <script> $('#btn_run').click(function(){  $('#result').html('');     var lines = $('textarea').val().trim().split('\n');  //แยกข้อความออกด้วยตัวแบ่งบรรทัด     var rows = lines.length;            //นับจำนวนอาร์เรย์ หรือจำนวนบรรทัดที่ได้ใน lines     if(lines[0].trim() == '<?php'){  //ตรวจสอบบรรทัดแรก เป็นตัวเปิดแท็ก PHP       $(...

สร้างแบบฟอร์มสำหรับบันทึกค่า ตามโครงสร้างตาราง book ด้วยคำสั่ง SHOW FULL COLUMNS

PHP MySQLi and MySQL table structure กำหนดให้ในฐานข้อมูลชื่อ test มีตาราง book ที่มีโครงสร้างตามรูป เราสามารถ เขียนโปรแกรม PHP  เพื่ออ่านค่าโครงสร้างของตาราง book ใน MySQL ได้โดยใช้คำสั่ง SHOW FULL COLUMNS ของ SQL ดังนี้ <?php $table = 'book'; $mysqli = new mysqli("localhost", "dev", "dev.1234", "test"); /* check connection */ if ($mysqli->connect_errno) {     printf("Connect failed: %s\n", $mysqli->connect_error);     exit(); } /* change character set to utf8 */ if (!$mysqli->set_charset("utf8")) {     printf("Error loading character set utf8: %s\n", $mysqli->error);     exit(); } /* Create table doesn't return a resultset */ if ($result = $mysqli->query("SHOW FULL COLUMNS FROM $table ")) {        /* fetch associative array */     while ($row = $result->fetch_assoc()) {         $data[] = array( ...

คำสั่ง SQL สำหรับแสดงข้อมูลโครงสร้างตารางใน MySQL

MySQL table structure จะมีอยู่ 2 แบบด้วยกัน แบบไม่มีคอลัมน์ Comment แบบมีคอลัมน์ Comment มาด้วย ผลลัพธ์ แบบที่ 1 จะไม่มีคอลัมน์ Comment แบบที่ 2 จะได้คอลัมน์ Comment มาด้วย :: ที่มา :: How do I get the MySQL table structure in PHP? Plus a list of all tables? https://stackoverflow.com/questions/468458/how-do-i-get-the-mysql-table-structure-in-php-plus-a-list-of-all-tables How can you see table comments from mysql client? https://stackoverflow.com/questions/7835092/how-can-you-see-table-comments-from-mysql-client PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น สนใจสั่งซื้อราคาสุดคุ้ม >>  http://fastcoding.phpcodemania.com/

การเขียนโปรแกรม JavaScript เพื่อรับค่าพารามิเตอร์ GET จาก URL ของหน้าเว็บเพจ

"How to retrieve GET parameters from javascript?" วิธีเขียนโปรแกรม JavaScript แบบสั้นๆ ง่ายๆเก็บพารามิเตอร์ตัวเดียว var param = window.location.search.substr(1); ถ้าเราทำการ alert(param); เราจะได้ค่าทั้งหมดหลังเครื่องหมาย ? เช่นเข้าหน้าเว็บผ่าน URL นี้ http://phpcodemania.blogspot.com/?param1=1234&param2=333 เมื่อเขียนโปรแกรมตามคำสั่งด้านบนนี้ var param = window.location.search.substr(1); alert(param); ผลลัพธ์ก็คือ จะแสดงข้อความ  param1=1234&param2=333 ออกมานั่นเอง หรือจะเขียนโปรแกรม JavaScript สร้างฟังก์ชั่นแบบยาวๆ function findGetParameter(parameterName) {     var result = null,         tmp = [];     location.search         .substr(1)         .split("&")         .forEach(function (item) {           tmp = item.split("...

PHP : PDF Generator ตอนที่ 4

PDF Generator หลังจากได้ทดลองโค้ดหาตำแหน่ง PDF เรียบร้อยแล้ว ก็ถึงเวลานำโค้ดที่ได้มาใส่ไว้ใน Project PDF Generator เพื่อทำตามขั้นตอนต่อไป สำหรับขั้นตอนการเขียนโค้ดก็มีคร่าวๆ ดังคลิปวิดีโอนี้ ---------------------------------------------------------- ดูบทความทั้งหมดของ  PHP : PDF Generator ได้ที่นี่ ติดตามทุกความเคลื่อนไหวของ PHP PDF Generator ได้ที่แท็ก :  PDF Generator ----------------------------------------------------------  PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม สนใจสั่งซื้อเพียง  4,500  บาท http://fastcoding.phpcodemania.com/

PHP : PDF Generator ตอนที่ 3

การเปลี่ยนไปใช้ Table แบบ ตรึงแถวหัวข้อ (Fixed Table Header) หลังจากที่ได้ลองใช้ Bootstrap gird เพื่อแบ่งคอลัมน์ต่างๆแล้ว รู้สึกไม่ค่อยถนัด และจัดการยาก ก็เลยเปลี่ยนไปเป็นการใช้ Table แล้วเพิ่มการตรึงส่วนของหัวข้อแถวบนเอาไว้แทน การใช้ Table จะควบคุมขนาดคอลัมน์ และตำแหน่งได้ง่ายกว่าเวลาข้อความยาวเกินขนาดที่กำหนดก็ไม่มีการเลื่อนหรือตกหล่นของข้อความ ---------------------------------------------------------- ดูบทความทั้งหมดของ  PHP : PDF Generator ได้ที่นี่ ติดตามทุกความเคลื่อนไหวของ PHP PDF Generator ได้ที่แท็ก :  PDF Generator PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม สนใจสั่งซื้อเพียง  4,500  บาท http://fastcoding.phpcodemania.com/

PHP : PDF Generator ตอนที่ 2

PDF Generator ในตอนที่สองนี้เป็นการเขียนโปรแกรมเพื่อหาค่าตำแหน่งแบบฟอร์มด้วย jQuery ซึ่งจะต้องนำมาคำนวณอีกครั้งว่าตำแหน่งจริงๆใน PDF นั้นจะมีขนาดคลาดเคลื่อนจากการคำนวณเท่าไร เพื่อชดเชยส่วนที่ขาดหาย ซึ่งดูขั้นตอนการเขียนโค้ดได้จากวิดิโอนี้ >>  PHP PDF Generator #1 (บันทึกการเขียนโปรแกรม) หลักการคร่าวๆ มีดังนี้ 1. ใช้โปรแกรม Word processor ที่ถนัด หรือโปรแกรมสร้าง PDF ตัวใดก็ได้ สร้างแบบฟอร์มที่ต้องการเสร็จแล้ว Save ให้อยู่ในรูปแบบไฟล์ PDF เพื่อนำไปใช้ในการเขียนโปรแกรม PHP สร้างรายงาน PDF 2. เรียกใช้ไลบรารี่ FPDI เพื่อโหลดไฟล์ PDF ที่สร้างเตรียมไว้มาในหน้าคำนวณตำแหน่ง (ดูตัวอย่างการใช้ FPDI ได้ในบทความ CodeIgniter PDF ตอนที่ 1 : ออกรายงานเอกสาร PDF ด้วย PHP CodeIgniter โดยใช้ไลบรารี่ TCPDF และ FPDI ) 3. เขียนโปรแกรมหาตำแหน่งด้วย jQuery โดยเลือกหัวข้อทางซ้ายมือ และคลิกกำหนดตำแหน่งใน PDF Viewer ทางขวามือ ในขั้นตอนต่อไปก็จะเป็นการนำโค้ดที่ได้ลองเขียนโปรแกรมหาตำแหน่งด้วย jQuery นี้ไปรวมกับหน้าเว็บใน PDF Generator ตอนที่ 1  และปรับปรุงการเชื่อมต่อ...

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

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

แจกโค้ด 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 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 ที่นี้คือ ฟิลด์จำ...

ระบบบันทึกการปฏิบัติงานประจำวัน ด้วย PHP + CodeIgniter Framework

สิ่งที่จะได้เรียนรู้ 1. การใช้งาน CodeIgniter Framework การสร้าง Model, View, Controller การสร้างตัวแบ่งหน้าด้วย Pagination ที่มีให้แล้ว การสร้าง Method/Function เพื่อลดความซ้ำซ้อนของโค้ด  2. การออกแบบฐานข้อมูล หลักการ Normalization หรือ การแยกข้อมูลในกระดาษ ให้มีโครงสร้างเป็นระเบียบอยู่ในฐานข้อมูล เพื่อลดความซ้ำซ้อนของข้อมูล (ข้อมูลซ้ำกันมากๆอย่างไม่จำเป็นขนาดก็ใหญ่ตามไปด้วย) การสร้างฐานข้อมูลด้วย PostgreSQL และจัดการข้อมูลด้วย PgAdmin 3 การเชื่อมโยงตารางที่เกี่ยวข้องกันด้วยคำสั่ง JOIN เพื่อแสดงชื่อหรือข้อมูลต่างๆของหลายๆตารางมาแสดงผลรวมกัน 3. การพิมพ์รายงานในรูปแบบ PDF  การเรียกใช้ Libraries จากที่อื่นเข้ามาใน CodeIgniter การใช้งาน TCPDF สร้างเอกสาร PDF จาก HTML 4. อื่นๆ การใช้งาน jQuery การใช้งาน Bootstrap การเขียน JavaScript แบบ OOP

PHP เบื้องต้น | รวมวิดีโอสอนเขียนโปรแกรม PHP & MySQL

1. พื้นฐาน PHP     1.1  โครงสร้างการเขียน PHP ร่วมกับ HTML     1 .2  Selection Structure : การเขียนโปรแกรมแบบทางเลือก     1. 3  ตัวแปร (Variable) และ ค่าคงที่ (Constant)     1.4  ตัวดำเนินการ (Operator)     1.5  เครื่องหมาย Single Quote / Double Quote และ Escape Sequence     1.6  Repetition Structure (การเขียนโปรแกรมวนซ้ำ)          1.7  การแทรกโค้ PHP ส่วนต่างๆของ HTML     1.8  PHP Function 2. PHP MySQLi CRUD : การจัดการฐานข้อมูล MySQL เบื้องต้น      2.1 : การบันทึกข้อมูลด้วย MySQLi Function      2.2 การค้นหาและแสดงข้อมูลในรูปแบบตาราง 1/2     2.3  การค้นหาและแสดงข้อมูลในรูปแบบตาราง 2/2      2. 4 การแก้ไขข้อมูลด้วยคำสั่ง UPDATE     2. 5 การลบข้อมูลจากฐานข้อมูล     2. 6 การป้องกัน SQL Injection ด้วยการใช้ prepare และ bindparam           2.7 กา...

PHP สำหรับผู้เริ่มต้น : การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox

การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลขใน Textbox จะเป็นการใช้ JavaScript วนลูปตามชื่อของ textbox ( name="price[]" ) เพื่อนำค่าที่ได้บวกเพิ่มเข้าไปในตัวแปร sum แล้วก็แสดงผลในช่องผลรวม sumprice <html> <head> <meta charset="UTF-8"> <script language="JavaScript"> function fncSum() { var num = ''; var sum = 0; for(var i=0;i<document.frmprice['price[]'].length;i++){ num = document.frmprice['price[]'][i].value; if(num!=""){ sum += parseFloat(num); } } document.frmprice.sumprice.value = sum; } </script> </head> <body> <h2>การคำนวณผลรวม เมื่อเปลี่ยนแปลงตัวเลข</h2> <form name="frmprice" method="POST"> <table> <?php for($i=1;$i<=5;$i++){ ?> <tr> <td><input type="text" name="price[...

วิธีตั้งเวลา Backup MySQL อัตโนมัติ เพื่อสำรองข้อมูลไว้ใช้เมื่อต้องการเรียกคืนภายหลัง

ทดสอบแล้วใช้ได้ แต่ใช้จริงต้องปรับตำแหน่งเรียก mysqldump ที่ต่างกัน OS : Windows Server เช่นถ้าใช้ wamp เป็นตัวติดตั้งก็จะอยู่ที่ C:\wamp \bin\mysql\mysql5.5.24\bin\mysqldump ถ้าติดตั้ง MySQL เพียวๆ ก็คงต้องหาตำแหน่งที่ถูกต้องของเซิร์ฟเวอร์แต่ละเวอร์ชั่น เช่น C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump การจะกำหนดเวลาแบ็กอัพนั้น Schedule ของ Windows Server ให้เรียกไฟล์ xxxxx.bat เพื่อทำงานตามเวลาที่กำหนด  (หากใช้ลีนุกซ์ก็คงจะใช้ cronjob และจะสะดวกกว่าหากจัดการด้วย webmin ) @echo off echo Running dump... set MYDATABASE=xxxxxxx set MYSQLUSER=root set MYSQLPASS=xxxxxxx set BACKUPFILE="F:\Backup\MySQL\%MYDATABASE%_%date:~10,4%-%date:~4,2%-%date:~7,2%_TIME.%time:~0,2%.%time:~3,2%.sql" C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump -u%MYSQLUSER% -p%MYSQLPASS% --result-file=%BACKUPFILE% %MYDATABASE% echo Done! %BACKUPFILE% หลังจากทดสอบแบ็กอัพฐานข้อมูลขนาด 1GB ใช้เวลาประมาณแค่ 1 นาทีเท่านั้น ส่วนผลข้างเคียงหรือปัญหาอื่นๆยังไม่ทราบ เพราะเป็นการทำงนผ่าน mysqldump ก็ไ...

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

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

PHP ระบบบริหารจัดการ พล็อตนิยาย - ตอนที่ 1

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

SELECT ซ้อน SELECT (GROUP BY, HAVING, SUBQuery, COUNT)

เมื่อต้องการนับจำนวนรายการตามเงื่อนไข แต่ก็จำเป็นต้องใช้ GROUP BY เพราะการใช้ COUNT + DISTINCT ไม่สามารถดึงข้อมูลตามเงื่อนไขได้  อยากจะนับจำนวนสมาชิกที่ชำร ะเงิน ถ้าใช้ COUNT() ก็จะออกมาหมด ทำให้ได้จำนวนเกินจากความเป ็นจริง เพราะสมาชิกบางคนชำระมากกว่ า 1 ครั้ง ก็เลยต้องเอามา GROUP กันด้วย รหัสสมาชิกก่อน เพื่อตัดเรคอร์ดที่ซ้ำกันออ กไป สมาชิกจะชำระกี่ครั้ง ก็นับเป็น 1 คน (เพราะเป็นสมาชิกคนเดียวกัน ) จะเห็นว่า จะได้ยอดที่ถูกต้อง 139 แต่ข้อมูลมันแจกแจงรายการต้ อง 139 แถว ซึ่งเราไม่ได้อยากได้รายละเ อียด แค่อยากนับจำนวนเท่านั้นจะท ำไงล่ะทีนี้ ก็จัดการ SELECT ครอบ SELECT ไว้เลย ซึ่งก็คือการทำ SubQuery นั่นเอง ก็จะออกมาเรคอร์ดเดียว เป็นจำนวนที่ต้องการนำไปใช้ งานได้ทันที จริงๆแล้วเราใช้ DISTINCT ได้นะ ถ้าเงื่อนไขมีแค่เท่านี้ ไม่จำเป็นต้อง SubQuery ดูสิ พอนับแบบตัดรายการซ้ำกันออก ก็ได้ 139 พอดิบพอดีเลย ใช่ครับ ถ้าเงื่อนไขมีเพียงเท่านี้ก ็ใช้ได้เลย แต่ถ้ามีเงื่อนไขอื่นล่ะ??? ถ้าจะนับเฉพาะสมาชิกที่ชำระ เงินตั้งแต่ 150...

จัดระเบียบโค้ด ใน 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

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