วันอังคารที่ 20 มกราคม พ.ศ. 2558

ชนิดของ fliedในฐานข้อมูล MySQL (Datatype)

VARCHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 – 255 ฟิลด์ชนิดนี้ เหมาะ
สำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น… ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก “แอตทริบิวต์” เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ “แอตทริบิวต์” เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก

CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูล
แบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR

TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัด
แค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่
จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้

TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ

MEDIUMTEXTเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร

LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร

TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ “แอตทริบิวต์” ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมี ความแตกต่างดังนี้
      – UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 – 255
      – UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก “แอ ตทริบิวต์” สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น

SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)
ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215
(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น
UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

BIGINT สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ – 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูล ที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์ เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E- 38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38

DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ
2.2250738585072014E-308 ถึง 1.7976931348623157E+308

DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)

DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD

DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น
(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS

TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037

TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า… ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ ฟิลด์ชนิด YEAR ก็เช่นกันครับ… ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)

TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้น
จะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์

BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB

MEDIUMBLOBสำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB

LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่ เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไป เก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า

SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนด ได้ถึง 64 ค่า
Credit by www.webUB.com

วันจันทร์ที่ 1 ธันวาคม พ.ศ. 2557

MYSQL INSERT() String Function

MYSQL INSERT() String Function
เป็นคำสั่งของ MySQL ใช้ในการแทรกข้อคววามลงในประโยคตามตำแหน่งที่ต้องการ

Database : MySQL

Syntax

INSERT(str,pos,len,newstr)


Sample

SELECT INSERT('Quadratic', 3, 4, 'What');
-> QuWhattic

SELECT INSERT('Quadratic', -1, 4, 'What');
-> Quadratic

SELECT INSERT('Quadratic', 3, 100, 'What');
-> QuWhat

MYSQL Full-Text Search

MYSQL Full-Text Search (ค้นหาข้อความแบบเต็ม) อธิบายความเข้าใจเกี่ยวกับการนำ MySQL FullText จากการค้นหาระบบ ในแบบเดิมซึ่งจะใช้การค้นหาด้วย LIKE '%Keyword%' ซึ่งจะไปค้นหา จาก Keyword ที่มีคำนั้น ๆ อยู่ใน Column หรือ ฟิวด์ใน Database เช่น

เช่น
Welcome to www.ThaiCreate.Com the best free tutorials

กรณีใช้ LIKE '%fr%' ก็จะได้ Record นี้มาเพราะคำว่า fr มีอยู่ในประโยค free

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

[Welcome] [to] [www.ThaiCreate.Com] [the] [best] [free] [tutorials]

จากการทำดัชนี (Index) แยกคำหรือประโยคได้แล้วก็จะถูกนำไปจัดเก็บกับความสำคัญของคำศัพท์ ไว้สำหรับเปรียบเทียบคำต่อคำ คำไหนที่ไม่มีประโยชน์ เช่น to , the .. ก็จะไม่ถูกทำดับชนีไว้สำหรับค้นหา กรณีใช้ค้นหา fr จะไม่พบ Record ดังกล่าว ซึ่งจะช่วยให้การค้นหานั้น สามารถค้นหาได้อย่างรวดเร็ว เพราะได้จัดทำ index ไว้แล้ว และยังตรงกับความต้องการมากที่สุด

การใช้งาน MySQL FULLTEXT
สำหรับ MySQL FULLTEXT นั้นรองรับ DataType อยู่ 3 ประเภทคือ CHAR VARCHAR แล้วก็ TEXT ซึ่งในการกำหนดคุณสมบัติของ Table และ Column ให้เป็นแบบ FULLTEXT สามารถกำหนดได้ในขั้นตอนการ CREATE TABLE

CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`),
FULLTEXT (`Name`,`Email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

หรือในกรณีที่มี Table อยู่แล้วก็สามารถใช้คำสั่ง ALTER ได้เช่นเดียวกัน
ALTER TABLE `customer` ADD FULLTEXT(`Name`,`Email`);

ตัวอย่างนี้กำหนดให้เป็นแบบ FULLTEXT มี `Name`,`Email`

ทดสอบการใช้งาน MySQL FULLTEXT

INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', 'win.weerachai@thaicreate.com', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', 'john.smith@thaicreate.com', 'EN', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', 'jame.born@thaicreate.com', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', 'chalee.angel@thaicreate.com', 'US', 4000000, 100000);

MySQL FULLTEXT 

การค้นหาด้วย MySQL FULLTEXT 

Sample 1
SELECT * FROM `customer` WHERE MATCH (Name,Email) AGAINST ('jo')

CustomerID
Name
Email
CountryCode
Budget
Used


Sample 2
SELECT * FROM `customer` WHERE MATCH (Name,Email) AGAINST ('Born')

CustomerID
Name
Email
CountryCode
Budget
Used
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000


Sample 3
SELECT * FROM `customer` WHERE MATCH (Name,Email) AGAINST ('Born Weerachai')

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000

SQL CREATE DATABSE

SQL CREATE DATABSE
เป็นคำสั่งที่ใช้สำหรับในการ Create Database หรือสร้างฐานข้อมูล สำหรับฐานข้อมูล MySQL 

Database : MySQL

Syntax

CREATE DATABASE "DatabaseName"


Sample1 ทดสอบการสร้างฐานข้อมูลชื่อ mydatabase 

CREATE DATABASE mydatabase

Output 

ได้ฐานข้อมูลชื่อ mydatabase 

SQL COUNT

SQL COUNT 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการนับจำนวน Count Record ที่ค้นพบ 

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT COUNT(Column/Field) AS [New-Field] FROM [Table-Name]


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลจำนวนลูกค้าทั้งหมด

SELECT COUNT(CustomerID) AS CountCustomerID FROM customer

Output 

CountCustomerID
4

SQL SUB SELECT QUERY

SQL SUB SELECT QUERY 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยใช้เลือกข้อมูลย่อยภายใน SELECT ย่อยอีกชั้นหนึ่งครับSUB SELECT QUERY เข้ามาช่วยในด้านความสะดวกและง่ายกว่าการ JOIN TABLE แต่ข้อเสียของ SUB SELECT คือ สามารถทำงานได้ช้ากว่า JOIN TABLE 

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Field] IN (SELECT ..... FROM ....)


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000

Table : audit 

AuditID
CustomerID
Date
Used
1
C001
2008-07-01
100000
2
C001
2008-07-05
200000
3
C001
2008-07-10
300000
4
C002
2008-07-02
400000
5
C002
2008-07-07
100000
6
C002
2008-07-15
300000
7
C003
2008-07-20
400000
8
C003
2008-07-25
200000
9
C004
2008-07-04
100000


Sample1 การเลือกข้อมูลตาราง customer ที่เชื่อมโยงกับตาราง audit ที่มีการใช้ยอดเงินในแต่ล่ะครั้งมากกว่า 400000 

SELECT * FROM customer WHERE CustomerID IN (SELECT CustomerID FROM audit WHERE Used >= '400000')

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000

SQL INSERT DUPLICATE KEY UPDATE

SQL ALIAS 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดย ALIAS คือการสร้างชื่อจำลองขึ้นมาใหม่ โดยสามารถจำลองชื่อได้ทั้งชื่อ Field และชื่อ Table 

Database : MySQL 

Syntax

SELECT Column1 AS Alias1,Column2 AS Alias2,Column3 AS Alias3,... FROM [Table-Name1] Table Alias


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลตาราง customer โดยทำการ Alias เปลี่ยนชื่อฟิวด์ขึ้นมาใหม่

SELECT CustomerID AS CusID,Name AS CusName,Email AS CusEmail FROM customer

Output 

CusID
CusName
CusEmail
C001
Win Weerachaiwin.weerachai@thaicreate.com
C002
John Smithjohn.smith@thaicreate.com
C003
Jame Bornjame.smith@thaicreate.com
C004
Chalee Angelchalee.angel@thaicreate.com


Sample2 การเลือกข้อมูลตาราง customer,audit โดยทำการ Alias เปลี่ยนชื่อ Table เพื่อง่านต่อการเรียกใช้งาน 

SELECT X.*,Y.* FROM customer X
LEFT JOIN audit Y ON X.CustomerID = Y.CustomerID
WHERE X.CustomerID = 'C001'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
AuditID
CustomerID
Date
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
1
C001
2008-08-01
100000
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
2
C001
2008-08-05
200000
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
3
C001
2008-08-10
300000



Sample3 การเลือกข้อมูลตาราง customer โดยทำการ Alias เปลี่ยนชื่อ Table เพื่อง่านต่อการเรียกใช้งาน 

SELECT X.CustomerID,X.Name FROM customer X

Output 

CusID
CusName
C001
Win Weerachai
C002
John Smith
C003
Jame Born
C004
Chalee Angel

SQL AVG

SQL AVG 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยหาค่าเฉลี่ยผลรวมของฟิวด์

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT AVG(Column/Field) AS [New-Field] FROM [Table-Name]


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลค่าเฉลี่ยผลรวมของ Budget

SELECT AVG(Budget) AS AvgBudget FROM customer

Output 

AvgBudget
2500000

SQL WHERE

SQL WHERE 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) คำสั่ง SQL WHERE สามารถระบุเงื่อนไขในการเลือกข้อมูลได้ 1 เงื่อนไข หรือมากกว่า 1 เงื่อนไข

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT Column1, Column2, Column3,... FROM Table-Name WHERE [Field] = 'Value'


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลโดยใช้ Operators = (เท่ากับ) 

SELECT * FROM customer WHERE CountryCode = 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode = 'US' and Budget = '4000000'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000

CustomerID
Name
Email
CountryCode
Budget
Used
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample2 การเลือกข้อมูลโดยใช้ Operators != (ไม่เท่ากับ) 

SELECT * FROM customer WHERE CountryCode != 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode != 'US' and CountryCode != 'EN'
หรือจะใช้ or
SELECT * FROM customer WHERE CountryCode != 'US' or Budget = '1000000'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000

SQL SELECT

SQL SELECT
เป็นคำสั่งที่ใช้สำหรับการเรียกดูข้อมูลในตาราง (Table) คำสั่ง SQL SELECT สามารถเรียกได้ทั้งตาราง หรือว่า สามารถระบุฟิวด์ที่ต้องการเรียกดูข้อมูลได้ 

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT Column1, Column2, Column3,... FROM [Table-Name]


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลที่ระบุฟิวด์

SELECT CustomerID, Name, Email FROM customer

Output 

CustomerID
Name
Email
C001
Win Weerachaiwin.weerachai@thaicreate.com
C002
John Smithjohn.smith@thaicreate.com
C003
Jame Bornjame.born@thaicreate.com
C004
Chalee Angelchalee.angel@thaicreate.com



Sample2 การเลือกข้อมูลทั้งหมดของ Table 

SELECT * FROM customer

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000

SQL Database & Table

รู้จักกับภาษา SQL ? SQL หรือ Structured Query Language 
เป็นภาษาที่ใช้ในการติดต่อกับฐานข้อมูลหรือพูดอีกอย่างก็คือ เป็นภาษาที่ใช้ในการสั่งให้ฐานฐานข้อมูลกระทำการใด ๆ ตามคำสั่งที่เราสั่ง ซึ่งในการติดต่อฐานข้อมูลนั้น ไม่ว่าจะเป็น SQL Server , Microsoft Access , MySQL ,DB2 หรือแม้แต่ Oracle ก็จะต้องใช้คำสั่งภาษา SQL ในการควบคุมทั้งสิ้น และเราจะมาเรียนรู้ถึงคำสั่งพื้นฐาน ของ SQL ที่จำเป็นกัน

โดยส่วนใหญ่แล้วการใช้คำสั่ง SQL เพื่อติดต่อฐานข้อมูลนั้น จะใช้โดยหลักคือ 3 กรณี 

1. การเรียกดู
2. การแก้ไข ลบ, เพิ่ม, เปลี่ยนแปลง
3. การสร้างขึ้นใหม่ 



สำหรับตัวอย่างในบทเรียนนี้ ผมได้สร้าง Table ขึ้นมา 3 Table ครับ
1.customer เป็นตารางเก็บข้อมูลลูกค้า
2.audit เป็นตารางเก็บข้อมูลการใช้ยอดเงินลูกค้า
3.country เป็นตารางเก็บข้อมูลประเทศ


Table : Customer

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Table : audit

AuditID
CustomerID
Date
Used
1
C001
2008-07-01
100000
2
C001
2008-07-05
200000
3
C001
2008-07-10
300000
4
C002
2008-07-02
400000
5
C002
2008-07-07
100000
6
C002
2008-07-15
300000
7
C003
2008-07-20
400000
8
C003
2008-07-25
200000
9
C004
2008-07-04
100000


Table : country

CountryCode
CountryName
TH
Thailand
EN
English
US
United states

วันอาทิตย์ที่ 31 สิงหาคม พ.ศ. 2557

The Revenge แค้นนี้ต้องชำระ [Official Teaser]


เรื่องย่อ

           ตั้งแต่เด็กจนโต ชุอาศัยอยู่กับแม่ และพ่อเลี้ยงของเธอ ครอบครัวของเธอมักมีปัญหากันจนเป็นความเคยชิน ทุกๆวัน พ่อเลี้ยงและแม่ของชุก็จะทะเลาะกันเหมือนปกติ จนเธอกลายเป็นเด็กมีปัญหา  วันหนึ่งพ่อและแม่ของชุมีปัญหารุนแรงขั้นพ่อใช้ปืนยิงแม่จนเสียชีวิต ชุเสียใจอย่างสุดขีด แต่ทำได้เพียงแอบมองอย่างห่างๆเพราะกลัวว่าพ่อจะฆ่าชุเช่นเดียวกับฆ่าแม่ ชุเห็นทุกการกระทำที่พ่อทำกับแม่ในวันนั้น พ่อลากศพแม่ไปทิ้ง และพยายามบอกกับชุว่า แม่ไปข้างนอกบ้าง แม่ไปเที่ยวบ้าง ชุพยายามไม่คิดอะไร แต่ในใจนั้นแสนทุกข์ทรมานจนต้องแอบร้องไห้อยู่คนเดียว เวลาผ่านไปไม่นาน หลายๆเรื่องที่เข้ามาในชีวิตของชุ ทำให้ชุทนไม่ได้กับการกระทำของพ่อเลี้ยง  เธอพยายามหาทางแก้แค้น จะเกิดอะไรขึ้นต่อจากนี้...ติดตามชมต่อใน The Revenge แค้นนี้ต้องชำระ... เร็วๆนี้....

วันอังคารที่ 5 สิงหาคม พ.ศ. 2557

ตัวอย่างโครงงานเรื่อง ระบบจัดการแผนงานออนไลน์ By จริญญา

ระบบจัดการแผนงานออนไลน์

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

วัตถุประสงค์ของโครงงาน
เพื่อพัฒนาโปรแกรมระบบจัดการแผนงานออนไลน์ โรงเรียนสุราษฎร์พิทยา
ขอบเขตของการดำเนินการ
การใช้งานของระบบจัดการแผนงานออนไลน์ของกลุ่มงานนโยบายและแผนงาน 
โรงเรียนสุราษฎร์พิทยา
เอกสารและงานวิจัยที่เกี่ยวข้อง
1. ประเภทของโครงงานคอมพิวเตอร์
1.1 โครงงานพัฒนาสื่อเพื่อการศึกษา เป็นโครงงานที่ใช้คอมพิวเตอร์ในการผลิตสื่อเพื่การศึกษา โดยการสร้างโปรแกรมบทเรียนหรือหน่วยการเรียน ซึ่งอาจจะต้องมีภาคแบบฝึกหัด บททบทวน และค าถามค าตอบไว้พร้อม
1.2 โครงงานประเภทการประยุกต์ใช้งาน เป็นโครงงานที่ใช้คอมพิวเตอร์ในการสร้าผลงานเพื่อประยุกต์ใช้งานจริงในชีวิตประจำวัน อาทิเช่น ซอฟต์แวร์สำหรับการออกแบบและตกแต่งภายในอาคาร ซอฟต์แวร์ส าหรับการผสมสี และซอฟต์แวร์ส าหรับการระบุคนร้าย เป็นต้น
1.3 โครงงานพัฒนาเกม เป็นโครงงานพัฒนาซอฟต์แวร์เกมเพื่อความรู้หรือเพื่อความ เพลิดเพลิน เกมที่พัฒนาควรจะเป็นเกมที่ไม่รุนแรง เน้นการใช้สมองเพื่อฝึกคิดอย่างมีหลักการ
1.4 โครงงานพัฒนาเครื่องมือ นี้เป็นโครงงานเพื่อพัฒนาเครื่องมือช่วย สร้างงานประยุกต์ต่างๆ โดยส่วนใหญ่จะอยู่ในรูปซอฟต์แวร์ เช่น ซอฟต์แวร์วาดรูป ซอฟต์แวร์พิมพ์งาน และซอฟต์แวร์ช่วยการมองวัตถุในมุมต่างๆ เป็นต้น
1.5 โครงงานประเภทการทดลองทฤษฎี โครงงานประเภทนี้เป็นโครงงานที่ใช้คอมพิวเตอร์ช่วยในการ จำลองการทดลองของสาขาต่างๆ ซึ่งเป็นงานที่ไม่สามารถทดลองด้วยสถานการณ์จริงได้ เช่น 
การจุดระเบิด เป็นต้น
2. ข้อมูลเกี่ยวกับโปรแกรมที่ใช้ในการพัฒนา
SQL คือ อะไร
เอสคิวแอล (SQL) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง
MySQL (มายเอสคิวแอล) 
เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL. สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael “Monty” Widenius. 
การใช้งาน 
นิยมใช้งานร่วมกับภาษาโปรแกรม PHP ซึ่งมักจะได้ชื่อว่าเป็นคู่ ซึ่งรวมถึง ภาษาซี ซีพลัสพลัส ปาสคาล ซีชาร์ป ภาษาจาวา เป็นต้น
ภาษา HTML 
HTML หรือ HyperText Markup Language เป็นภาษาคอมพิวเตอร์รูปแบบหนึ่ง ที่มีโครงสร้างการเขียนโดย
อาศัยตัวกำกับ (Tag) ควบคุมการแสดงผลข้อความ, รูปภาพ หรือวัตถุอื่นๆ ผ่านโปรแกรมเบราเซอร์
โครงสร้างของภาษา HTML 
ไฟล์เอกสาร HTML ประกอบด้วยส่วนประกอบสองส่วนคือ Head กับ Body โดยสามารถเปรียบเทียบได้ง่ายๆ ก็คือ ส่วน Head จะคล้ายกับส่วนที่เป็น Header ของหน้าเอกสารทั่วไป หรือบรรทัด Title ของหน้าต่างการทำงานในระบบ Windows สำหรับส่วน Body จะเป็นส่วนเนื้อหาของเอกสารนั้นๆโดยทั้งสองส่วนจะอยู่ภายในTag<HTML>…</HTML> 
<html>
<head><title> (หัวข้อ) </title></head> 
<body>
(เนื้อหา)
</body>
</html> 
โปรแกรมภาษา PHP
ภาษาคอมพิวเตอร์ในลักษณะเซิร์ฟเวอร์-ไซด์สคริปต์โดยลิขสิทธิ์อยู่ในลักษณะโอเพนซอร์ส ภาษาพีเอชพีใช้ส าหรับจัดท าเว็บไซต์และแสดงผลออกมาในรูปแบบ HTMLโดยมีรากฐานโครงสร้างคำสั่งมาจากภาษาซีภาษาจาวา และ ภาษาเพิร์ล
ตัวอย่างภาษาพีเอชพี
ภาษาพีเอชพีจะเป็นส่วนประกอบภายในเว็บเพจ โดยค าสั่งจะปรากฏระหว่า <?php … ?>
เช่น
<? phpecho “Hello, World!”;?>
<?echo “Hello World.”; ?>
<SCRIPT LANGUAGE = ‘php‘>
echo “Hello World.”;
</SCRIPT>
v
<% echo “Hello World.”; %>
การแสดงผลของพีเอชพีจะปรากฏในลักษณะ HTML ซึ่งจะไม่แสดงคำสั่งที่ผู้ใช้เขียน ซึ่งเป็นลักษณะเด่นที่พีเอชพีแตกต่างจากภาษาในลักษณะไคลเอนต์-ไซด์สคริปต์เช่น ภาษาจาวาสคริปต์ที่ผู้ชมเว็บไซต์สามารถอ่าน ดูและคัดลอกคำสั่งไปใช้เองได้นอกจากนี้พีเอชพียังเป็นภาษาที่เรียนรู้และเริ่มต้นได้ไม่ยาก โดยมีเครื่องมือช่วยเหลือและคู่มือที่สามารถหาอ่านได้ฟรีบนอินเทอร์เน็ต
ความสามารถการประมวลผลหลักของพีเอชพี
รู้จักกับโปรแกรม Photoshop CS3
 เป็นโปรแกรมในตระกูล Adobe ที่ใช้สำหรับตกแต่งภาพถ่ายและภาพกราฟิก ได้อย่างมีประสิทธิภาพ ไม่ว่าจะเป็นงานด้านสิ่งพิมพ์ นิตยสาร และงานด้านมัลติมีเดีย อีกทั้งยังสามารถ retouching ตกแต่งภาพและการสร้างภาพ ซึ่งก าลังเป็นที่นิยมสูงมากในขณะนี้ เราสามารถใช้โปรแกรม Photoshop ในการตกแต่งภาพ การใส่ Effect ต่าง ๆให้กับภาพ และตัวหนังสือ การทำภาพขาวดำ การทำภาพถ่ายเป็นภาพเขียน การนำภาพมารวมกัน การ Retouch ตกแต่งภาพต่าง
รู้จักกับโปรแกรม Dreamweaver
เป็นโปรแกรมแก้ไข HTML พัฒนาโดยบริษัทแมโครมีเดีย สำหรับการออกแบบเว็บไซต์ในรูปแบบ WYSIWYG กับการควบคุมของส่วนแก้ไขรหัส HTML ในการพัฒนาโปรแกรมที่มีการรวมทั้งสองแบบเข้าด้วยกันแบบนี้ ทำให้ ดรีมวีฟเวอร์เป็นโปรแกรมที่แตกต่างจากโปรแกรมอื่นๆ
การทำงานกับภาษาต่างๆ Dreamweaver สามารถทำงานกับภาษาคอมพิวเตอร์ในการเขียนเว็บไซต์แบบไดนามิค ซึ่งมีการใช้ HTML เป็นตัวแสดงผลของเอกสาร เช่น ASP, ASP.NET, PHP, JSP และ ColdFusion รวมถึงการจัดการฐานข้อมูลต่างๆ อีกด้วย และในเวอร์ชันล่าสุด (เวอร์ชัน CS4) ยังสามารถทำงานร่วมกับ XML และ CSS ได้อย่างง่ายดาย
รู้จักกับ AppServ
ชุดโปรแกรมในลักษณะของ WAMP ในการสร้างเว็บเซิร์ฟเวอร์สำเร็จรูปบนระบบปฏิบัติการไมโครซอฟท์ วินโดวส์สร้างโดยชาวไทย จัดทำขึ้นโดย ภาณุพงศ์ ปัญญาดี เป็นการ
รวมโปรแกรมจำนวน 4 ตัวในการสร้างเว็บเซิร์ฟเวอร์ ได้แก่
• Apache HTTP Server
• PHP
• MySQL
• phpMyAdmin

วิธีดำเนินการ
ดำเนินการจัดทำโครงงานตามแนวทางการพัฒนาโครงงานคอมพิวเตอร์ 6 ขั้นตอนดังนี้
3.2.1 การเลือกหัวข้อโครงงาน
3.2.2 การศึกษาค้นคว้าหาข้อมูลที่เกี่ยวข้องกับโครงงาน
3.2.3 การจัดทำข้อเสนอโครงงาน
3.2.4 การจัดทำโครงงานประกอบด้วย 4 ขั้นตอน ดังนี้
3.2.4.1การวิเคราะห์และก าหนดรายละเอียดของปัญหา โดยระบุ
- การระบุข้อมูลเข้า เมื่อ Login  เข้ามารับข้อมูลชื่อผู้ใช้และรหัสผ่าน รับข้อมูลชื่อโครงการและรายละเอียดของกิจกรรม และสามารถเพิ่มรายการการเบิกจ่ายงบประมาณ
- การระบุข้อมูลออก แสดง Report ข้อมูลจำนวนเงินคงเหลือในแต่ละโครงการ/สังกัดฝ่าย และยอดรวมจำนวนเงินของทุกฝ่ายงาน
- การประมวลผลตรวจสอบยอดงบประมาณรวมของกิจกรรมในแต่ละโครงการและยอดงบประมาณที่เหลือจากการหักค่าใช้จ่ายในแต่ละครั้ง
3.2.4.2การเลือกเครื่องมือและออกแบบขั้นตอนวิธีในการแก้ปัญหาระบบจัดการแผนงานออนไลน์ ประกอบด้วยการใช้งานของผู้ใช้ทั่วไป(User) และผู้ดูแลระบบ (Admin) แบ่ง Userทั้งหมดออกเป็น 22 ฝ่าย
3.2.4.3การดำเนินการแก้ปัญหา
1. พัฒนาโปรแกรมระบบแผนงานออนไลน์ด้วยภาษา PHP ตามผังงานที่ออกแบบไว้ และออกแบบโครงสร้างฐานข้อมูล โดยจำลองเว็บผ่านโปรแกรม AppServ
2. Upload ฐานข้อมูลและเว็บไซต์เข้าสู่ Server โรงเรียนสุราษฎร์พิทยาhttp://ict.srp.ac.th/~student0155/PlanOnline
3.2.4.4การตรวจสอบและปรับปรุงวิธีการตรวจสอบกับบราวเซอร์ของ Notebook PC iPhone iPad Android
3.2.4.5การจัดทำคู่มือการใช้งาน
3.2.5 การเขียนรายงานได้จัดทำรายงานโครงงานเป็นรูปเล่ม
3.2.6 การนำเสนอและแสดงผลงานของโครงงาน ได้นำเสนอผลงานในงานนิทรรศการแสดงผลงานนักเรียนของกลุ่มสาระการงานอาชีพและเทคโนโลยี เมื่อวันศุกร์ที่ 7 กันยายน 2555 บริเวณอาคารไมตรี โรงเรียนสุราษฎร์พิทยาและได้นำเสนอผลงาน ในงานศิลปหัตถกรรมนักเรียน ครั้งที่ 62 ระดับสหวิทยาเขตสุราษฎร์ธานี  ณ โรงเรียนสุราษฎร์ธานี 2 เมื่อวันที่ 7 พฤศจิกายน พ.ศ 2555 และได้น าเสนอผลงาน ในงานศิลปหัตถกรรมนักเรียน ครั้งที่ 62 ระดับภาคใต้ ณ โรงเรียนสตรีภูเก็ต เมื่อวันที่ 19
ธันวาคม พ.ศ. 2555 และได้นำเสนอผลงานในงานนิทรรศการทางวิชาการ “เปิดบ้านสู่ชุมชน ปีการศึกษา 2555” ณ โรงเรียนสุราษฎร์พิทยา เมื่อวันที่ 18 มกราคม พ.ศ. 2556 และได้มีการเผยแพร่ระบบจัดการแผนงานออนไลน์ผ่านทางเว็บไซต์ SRP ICT Center 
http://www2.srp.ac.th/~ict/ และเว็บไซต์ฝ่ายบริหารทั่วไป
http://www2.srp.ac.th/~general/ โรงเรียนสุราษฎร์พิทยา
ผลการดำเนินการ
จากการดำเนินการพัฒนาระบบแผนงานออนไลน์ด้วยภาษา PHP ตามขั้นตอนการพัฒนาโครงงานคอมพิวเตอร์ 6 ขั้นตอน ซึ่งระบบแผนงานออนไลน์สามารถแสดง Report ข้อมูลจำนวนเงินคงเหลือในแต่ละโครงการของฝ่ายงาน และยอดรวมจำนวนเงินของทุกฝ่ายงาน
สรุปผล อภิปราย และข้อเสนอแนะ
สรุปผล
โครงงานคอมพิวเตอร์เรื่อง ระบบจัดการแผนงานออนไลน์โดยดำเนินการจัดทำโครงงานตามแนวทางการพัฒนาโครงงานคอมพิวเตอร์ 6 ขั้นตอน คือ การเลือกหัวข้อโครงงาน  การศึกษาค้นคว้าหา
ข้อมูลที่เกี่ยวข้องกับโครงงาน การจัดทำข้อเสนอโครงงาน  การจัดทำโครงงานประกอบด้วย 4 ขั้นตอน         1 การวิเคราะห์และกำหนดรายละเอียดของปัญหา  2. การเลือกเครื่องมือและออกแบบขั้นตอนวิธีในการแก้ปัญหา 3. การดำเนินการแก้ปัญหา 4. การตรวจสอบและปรับปรุงวิธีการ การเขียนรายงาน  การนำเสนอและแสดงผลงานของโครงงาน ขอบเขตการทำงานของระบบจัดการแผนงานออนไลน์สำหรับกลุ่มงานนโยบายและแผนงานโรงเรียนสุราษฎร์พิทยา ระบบแผนงานออนไลน์ ผ่านเว็บไซต์ของฝ่ายบริหารทั่วไป http://ict.srp.ac.th/~sproject0155/PlanOnline โดยผู้ใช้ต้อง Login เข้ามาใช้ระบบ โปรแกรม รับข้อมูลชื่อโครงการและรายละเอียดของกิจกรรม และสามารถเพิ่มรายการการเบิกจ่ายงบประมาณ ตรวจสอบยอดงบประมาณรวมของกิจกรรมในแต่ละโครงการและยอดงบประมาณที่เหลือจากการหักค่าใช้จ่ายในแต่ละครั้ง แสดงข้อมูลจำนวนเงินคงเหลือในแต่ละโครงการของกลุ่มงาน และสามารถแสดงยอดรวมจำนวนเงินของทุกฝ่ายงาน และสามารถแสดงรายละเอียดการเบิกจ่ายในรูปของไฟล์งาน excel ได้ โดยสามารถเลือกให้แสดงออกเป็นช่วงเดือนหรือรายปีได
อภิปรายผล
จากการเรียนวิชาการสร้างผลงานด้านคอมพิวเตอร์ของนักเรียนระดับชั้น ม.5 โรงเรียน
สุราษฎร์พิทยา ภาคเรียนที่ 1 ปีการศึกษา 2555 มีเนื้อหาเกี่ยวกับการปฏิบัติการสร้างและนำเสนอผลงานด้านคอมพิวเตอร์โดยให้นักเรียนคำนึงถึงการนำความรู้ไปประยุกต์สร้างสรรค์ประโยชน์ต่อสังคม ทางกลุ่มสนใจในการสร้างสรรค์งานพัฒนาโปรแกรม จึงสอบถามข้อมูลปัญหาและความต้องการจากผู้ที่เกี่ยวข้อง ทั้งจากเจ้าหน้าที่ฝ่ายงานในโรงเรียน เจ้าหน้าที่งานแผนงาน ครูที่ปรึกษาโครงงานในฐานะผู้รับผิดชอบโครงการศูนย์ ICT ของโรงเรียน ซึ่งเป็นตัวแทนผู้ใช้ระบบจัดการแผนงานออนไลน์ ให้ข้อมูลแบบฟอร์ม เอกสารแผนปฏิบัติการโครงการประจำปีการศึกษา 2555 ของโรงเรียน และทดสอบระบบ ให้อย่างต่อเนื่อง ทำให้ผลงานออกมาตรงตามแนวทางการปฏิบัติของโรงเรียน และรองรับการใช้ระบบผ่านเทคโนโลยีที่หลากหลาย iPAD, iPhone, Android เป็นต้น
เอกสารอ้างอิง
ทำความรู้จักกับโปรแกรม Dreamweaver .[online]. เข้าถึงได้จาก:            http://www.thaigoodview.com/library/contest2552/type2/tech04/47/page/1_introduce.html วันที่ 1 มิถุนายน 2555.
โปรแกรมภาษา PHP .[online]. เข้าถึงได้จาก:
http://starlovekhun.exteen.com/20110710/php วันที่ 30 มิถุนายน 2555.Appserv Open Project. [online]. เข้าถึงได้จาก: http://www.appservnetwork.com  วันที่ 30 มิถุนายน 2555.
ภาษา HTML. [online]. เข้าถึงได้จาก:
http://www.holy.ac.th/holy/html.htmวันที่ 30 มิถุนายน 2555.ศรีษะเกษ, โรงเรียน .
โครงงานคอมพิวเตอร์  [online]. เข้าถึงได้จาก: 
        http://teacher.skw.ac.th/salunyar/40102/unit_05/p_501.htm.  วันที่ 15 ตุลาคม 2554.
Appserv Open Project. [online]. เข้าถึงได้จาก: 
http://www.appservnetwork.com  วันที่ 30 มิถุนายน 2555.
Open Source Software (OSS). [online]. เข้าถึงได้จาก:
http://my-opensource-software.blogspot.com/2011/09/appserv.html . วันที่ 30 มิถุนายน 2555.
Photoshop. [online]. เข้าถึงได้จาก:
http://www.edu-mine.com/photoshop/lesson1_IntroPhotoshop.html. วันที่ 30 กันยายน 2555.
SQL คือ อะไร .[online]. เข้าถึงได้จาก:
http://www.choosak.com/page-29/  วันที่ 30 มิถุนายน 2555.
ข้อเสนอแนะในการปรับปรุงโครงงาน
- ควรมีการสำรวจปัญหาต่างๆเพิ่ม ไม่ควรมีแค่ปัญหาเดียว คือ ปัญหาในการตรวจสอบการใช้งบประมาณ
- เมื่อโปรแกรมสามารถใช้งานได้จริงแล้ว ก็นำโปรแกรมไปเผยแผ่ให้แก่องค์กรต่างๆ ที่ต้องการใช้โปรแกรมประเภทนี้ เพื่อจะได้เป็นการประหยัดเวลาในการทำงาน