วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

คำสั่ง Sql




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

Sample 1
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

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax

SELECT MIN(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 MIN(Budget) AS MinBudget FROM customer

Output 

MinBudget
1000000

3.MYSQL DAYOFWEEK()
เป็นคำสั่งของ MySQL กับ DateTime โดย DAYOFWEEK ใช้หาค่าวันของสัปดาห์ (1=Sunday ... 7=Saturday)

1 = Sunday
2 = Monday
3 = Tuesday
4 = Wednesday
5 = Thursday
6 = Friday
7 = Saturday

Database : MySQL

Syntax

DAYOFWEEK(date)


Sample

SELECT DAYOFWEEK('2007-02-03');
-> 7

4.MYSQL WEEK()
เป็นคำสั่งของ MySQL กับ DateTime โดย WEEK ใช้ในการหาสัปดาห์ของปี

Database : MySQL

Syntax

WEEK(date[,mode])

The following table describes how the mode argument works.
ModeFirst day of weekRangeWeek 1 is the first week …
0Sunday0-53with a Sunday in this year
1Monday0-53with more than 3 days this year
2Sunday1-53with a Sunday in this year
3Monday1-53with more than 3 days this year
4Sunday0-53with more than 3 days this year
5Monday0-53with a Monday in this year
6Sunday1-53with more than 3 days this year
7Monday1-53with a Monday in this year

Sample

SELECT WEEK('2008-02-20');
-> 7

SELECT WEEK('2008-02-20',0);
-> 7

SELECT WEEK('2008-02-20',1);
-> 8

SELECT WEEK('2008-12-31',1);
-> 35
5.MYSQL LAST_DAY()
เป็นคำสั่งของ MySQL กับ DateTime โดย LAST_DAY ใช้ในการหาวันที่สุดท้ายของเดือน

Database : MySQL

Syntax

LAST_DAY(date)


Sample

SELECT LAST_DAY('2003-02-05');
-> 2003-02-28

SELECT LAST_DAY('2004-02-05');
-> 2004-02-29

SELECT LAST_DAY('2004-01-01 01:01:01');
-> 2004-01-31

SELECT LAST_DAY('2003-03-32');
-> NULL
6.MYSQL SUBDATE()
เป็นคำสั่งของ MySQL กับ DateTime โดย SUBDATE ใช้ในการหา บวก หรือ ลบ ค่าของวันที่ ใน Format ต่าง ๆ 

Database : MySQL

Syntax

SUBDATE(date,INTERVAL expr unit), SUBDATE(expr,days)

expr argument for each unit value.
unit ValueExpected expr Format
MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
WEEKWEEKS
MONTHMONTHS
QUARTERQUARTERS
YEARYEARS
SECOND_MICROSECOND'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND'MINUTES:SECONDS'
HOUR_MICROSECOND'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND'HOURS:MINUTES:SECONDS'
HOUR_MINUTE'HOURS:MINUTES'
DAY_MICROSECOND'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE'DAYS HOURS:MINUTES'
DAY_HOUR'DAYS HOURS'
YEAR_MONTH'YEARS-MONTHS'

ทั้งนี้ยังสามารถใช้ INTERVAL เข้ามา + หรือ - ค่าวันที่ได้เช่นเดียวกัน 
date + INTERVAL expr unit
date - INTERVAL expr unit


Sample

SELECT DATE_SUB('2008-01-02', INTERVAL 31 DAY);
-> 2007-12-02

SELECT SUBDATE('2008-01-02', INTERVAL 31 DAY);
-> 2007-12-02

7.MYSQL TIME_FORMAT()
เป็นคำสั่งของ MySQL กับ DateTime โดย TIME_FORMAT ใช้ในการหาหรือแปลงค่า ของเวลาในรูปแบบต่างๆ 

Database : MySQL

Syntax

TIME_FORMAT(time,format)

SpecifierDescription
%aAbbreviated weekday name (Sun..Sat)
%bAbbreviated month name (Jan..Dec)
%cMonth, numeric (0..12)
%DDay of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%dDay of the month, numeric (00..31)
%eDay of the month, numeric (0..31)
%fMicroseconds (000000..999999)
%HHour (00..23)
%hHour (01..12)
%IHour (01..12)
%iMinutes, numeric (00..59)
%jDay of year (001..366)
%kHour (0..23)
%lHour (1..12)
%MMonth name (January..December)
%mMonth, numeric (00..12)
%pAM or PM
%rTime, 12-hour (hh:mm:ss followed by AM or PM)
%SSeconds (00..59)
%sSeconds (00..59)
%TTime, 24-hour (hh:mm:ss)
%UWeek (00..53), where Sunday is the first day of the week
%uWeek (00..53), where Monday is the first day of the week
%VWeek (01..53), where Sunday is the first day of the week; used with %X
%vWeek (01..53), where Monday is the first day of the week; used with %x
%WWeekday name (Sunday..Saturday)
%wDay of the week (0=Sunday..6=Saturday)
%XYear for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%xYear for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%YYear, numeric, four digits
%yYear, numeric (two digits)
%%A literal “%” character
%xx, for any “x” not listed above


Sample

SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
-> 100 100 04 04 4

8.MYSQL REVERSE()
เป็นคำสั่งของ MySQL ใช้ในการสลับตำแหน่งของข้อความ

Database : MySQL

Syntax

REVERSE(str)


Sample

SELECT REVERSE('abc');
-> cba

SELECT REVERSE('thaicreate');
-> etaerciaht

9.MYSQL REPEAT()
เป็นคำสั่งของ MySQL ใช้ในการแทนที่แสดงจำนวนข้อความ ตามจำนวน Loop ที่ต้องการ

Database : MySQL

Syntax

REPEAT(str,count)


Sample

SELECT REPEAT('MySQL', 3);
-> MySQLMySQLMySQL

SELECT REPEAT('ThaiCreate', 5);
-> ThaiCreateThaiCreateThaiCreateThaiCreateThaiCreate

10.MYSQL INSTR()
เป็นคำสั่งของ MySQL ใช้ในการค้นหาตำแหน่งของข้อความ จากตำแหน่งแรกที่ค้นพบ

Database : MySQL

Syntax

INSTR(str,substr)


Sample

SELECT INSTR('foobarbar', 'bar');
-> 4

SELECT INSTR('xbar', 'foobar');
-> 0





อ้างอิง : http://www.thaicreate.com/

วันอาทิตย์ที่ 30 พฤศจิกายน พ.ศ. 2557

ข้อสอบ O-Net

1)ข้อใดเป็นระบบปฏิบัติการทั้งหมด
ก.Solaris , Symbian , IPX , RAM
ข.DOS , WWW , Linux , Windows
ค.Symbian , Mac OS , Linux , Windows
ง.Unix , Linux , Mac OS , Microsoft Office
2)ถ้าต้องการบันทึก และวิเคราะห์คะแนนของนักเรียน และแสดงข้อมูลสรุปในรูปแบบของแผนภูมิซอฟต์แวร์ประเภทใดเหมาะสมที่สุด
ก.ซอฟต์แวร์ฐานข้อมูล (database)
ข.ซอฟต์แวร์นำเสนอ (presentation)
ค.ซอฟต์แวร์ตารางทำงาน (spread sheet)
ง.ซอฟต์แวร์ประมวลคำ (word processing)
3)ใช้อุปกรณ์คอมพิวเตอร์อย่างไรจึงช่วยลดภาวะโลกร้อน
ก.เลือกใช้จอแอลซีดีและปรับปรุงซอฟต์แวร์ให้ทันสมัย
ข.ไม่เชื่อมต่อระบบเครือข่ายและใช้เครื่องพิมพ์แบบเลเซอร์
ค.ใช้คอมพิวเตอร์วันละ 1 ชม. และรักษาความสะอาดอยู่เสมอ
ง.ใช้งานเมื่อทำงานที่มีประโยชน์และจำเป็น ไม่เปิดเครื่องทิ้งไว้
4)ถ้าต้องการถนอมอายุการใช้งานของเครื่องคอมพิวเตอร์ ผู้ใช้งานต้องปฏิบัติข้อใด
ก.ใช้เครื่องสำรองไฟ (UPS) และตรวจสอบสภาพฮาร์ดแวร์เป็นประจำ
ข.รักษาความสะอาดของอุปกรณ์คอมพิวเตอร์อยู่เป็นประจำ และใช้คีย์บอร์ดและเมาส์ไร้สาย
ค.เชื่อมต่อคอมพิวเตอร์กับอุปกรณ์ต่าง ๆ ด้วยสายคุณภาพสูง และพักเครื่องโดยการปิดเครื่องเป็นระยะ
ง.ไม่วางอุปกรณ์คอมพิวเตอร์ในห้องที่อุณหภูมิสูงและไม่รับประทานอาหารและเครื่องดื่มใกล้เครื่องคอมพิวเตอร์
5)ข้อใดต่อไปนี้ไม่ใช่ประโยชน์โดยตรงของการพาณิชย์อิเล็กทรอนิกส์
ก.ลดค่าใช้จ่ายในการลงทุน
ข.สามารถใช้บริการได้ทุกที่ทุกเวลา
ค.สามารถคำนวณรายรับ รายจ่ายและภาษีได้ละเอียดและถูกต้อง
ง.สามารถให้ข้อมูลลูกค้าได้อย่างละเอียดและถูกต้องเป็นปัจจุบัน
6)อุปกรณ์คอมพิวเตอร์ใดต่อไปนี้ จัดเป็นหน่วยรับเข้าและส่งออก
ก.เมาส์ (mouse)
ข.ฮาร์ดดิสก์ (hard disk)
ค.จอภาพแบบสัมผัส (touch screen)
ง.เครื่องบันทึกแผ่นซีดี (CD-writer)
7)อุปกรณ์ใด ใช้เชื่อมโยงเครือข่ายตั้งแต่ 3 เครือข่ายที่แตกต่างกันได้ดีที่สุด
ก.ฮับ (hub)
ข.บริดจ์ (bridge)
ค.สวิตซ์ (switch)
ง.เราเตอร์ (router)
8)ขณะใช้งานอินเทอร์เน็ต ปรากฏหน้าต่างที่ไม่ต้องการ ออกมารบกวนอยู่เสมอ และทำให้เครื่องคอมพิวเตอร์ทำงานช้าลง เหตุการณ์นี้เกิดจากโปรแกรมใด
ก.เวิร์ม (worm)
ข.ไวรัส (virus)
ค.สปายแวร์ (spyware)
ง.ม้าโทรจัน (trojan horse)
9)ตามมาตรฐานการจัดระบบการเชื่อมต่อสื่อสาร ระหว่างระบบเปิด (Open System Interconnection : OSI) การควบคุมข้อมูลถูกส่งผ่านจากต้นทางไปยังปลายทางด้วยเส้นทางที่เหมาะสม เกิดในเครือข่ายชั้นใด
ก.ชั้นขนส่ง (transport)
ข.ชั้นเครือข่าย (network layer)
ค.ชั้นกายภาพ (physical layer)
ง.ชั้นเชื่อมโยงข้อมูล (data link layer)
10)"กำหนดให้ P , M , N เป็นเลขจำนวน และ P เป็นผลบวกของ M และ N" ขั้นตอนการจำลองความคิดเป็นข้อความที่แสดงผลลัพธ์สุดท้ายของผลรวมของเลขจำนวน M และ N เป็นอย่างไร
ก.เริ่มต้น รับค่า N, M ให้ P = N+M พิมพ์ค่า P จบ
ข.เริ่มต้น ให้ P = N+M รับค่า N, M พิมพ์ค่า P จบ
ค.เริ่มต้น พิมพ์ค่า P รับค่า N, M ให้ P = N+M จบ
ง.เริ่มต้น รับค่า N, M พิมพ์ค่า P ให้ P = N+M จบ



ที่มา : http://www.trueplookpanya.com/examination/doexam/2029

วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

ฟังก์ชัน PHP

       ฟังก์ชันในโปรแกรมส่วนใหญ่ได้รับการเรียกคำสั่งเพื่อทำงานอย่างเดียว สิ่งนี้ทำให้คำสั่งอ่านได้ง่ายและยอมให้ใช้คำสั่งใหม่แต่ละครั้งเมื่อต้องการทำงานเดียวกันฟังก์ชันเป็นโมดูลเก็บคำสั่งที่กำหนดการเรียกอินเตอร์เฟซ ทำงานเดียวกัน และตัวเลือกส่งออกค่าจากการเรียกฟังก์ชัน คำสั่งต่อไปเป็นการเรียกฟังก์ชันอย่างง่าย
my_function ();

คำสั่งเรียกฟังก์ชันชื่อ my_function ที่ไม่ต้องการพารามิเตอร์ และไม่สนใจค่าที่อาจจะส่งออกโดยฟังก์ชันนี้

ฟังก์ชันจำนวนมากได้รับการเรียกด้วยวิธีนี้ เช่น ฟังก์ชัน phpinfo () สำหรับแสดงเวอร์ชันติดตั้งของ PHP สารสนเทศเกี่ยวกับ PHP การตั้งค่าแม่ข่ายเว็บ ค่าต่างๆ ของ PHP และตัวแปร ฟังก์ชันนี้ไม่ใช้พารามิเตอร์และโดยทั่วไปไม่สนใจค่าส่งออก ดังนั้นการเรียก phpinfo () จะประกอบขึ้นดังนี้ phpinfo ();

การกำหนดฟังก์ชันและการเรียกฟังก์ชัน

การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด function กำหนดชื่อฟังก์ชัน พารามิเตอร์ที่ต้องการ และเก็บคำสั่งที่จะประมวลผลแต่ละครั้งเมื่อเรียกฟังก์ชันนี้

<?php

function function_name(parameter1,…)
{

ชุดคำสั่ง …

}
?>

ชุดคำสั่งต้องเริ่มต้นและสิ้นสุดในวงเล็บปีกกา ({ }) ตัวอย่างฟังก์ชัน my_function

<?php
function my_function()
{

$mystring =<<<BODYSTRING
my function ได้รับการเรียก

BODYSTRING;
echo $mystring;

}
?>

การประกาศฟังก์ชันนี้ เริ่มต้นด้วย function ดังนั้นผู้อ่านและตัวกระจาย PHP ทราบว่าต่อไปเป็นฟังก์ชันกำหนดเอง ชื่อฟังก์ชันคือ my_function การเรียกฟังก์ชันนี้ใช้ประโยคคำสั่งนี้
my_function ();

การเรียกฟังก์ชันนี้จะให้ผลลัพธ์เป็นข้อความ "my function ได้รับการเรียก " บน browser

การตั้งชื่อฟังก์ชัน

สิ่งสำคัญมากในการพิจารณาเมื่อตั้งชื่อฟังก์ชันคือชื่อต้องสั้นแต่มีความหมาย ถ้าฟังก์ชันสร้างส่วนตัวของเพจควรตั้งชื่อเป็น pageheader () หรือ page_header ()

ข้อจำกัดในการตั้งชื่อคือ

ฟังก์ชันไม่สามารถมีชื่อเดียวกับฟังก์ชันที่มีอยู่
ชื่อฟังก์ชันสามารถมีได้เพียงตัวอักษรตัวเลข และ underscore
ชื่อฟังก์ชันไม่สามารถเริ่มต้นด้วยตัวเลข
หลายภาษายอมให้ใช้ชื่อฟังก์ชันได้อีก ส่วนการทำงานนี้เรียกว่า function overload อย่างไรก็ตาม PHP ไม่สนับสนุน function overload ดังนั้นฟังก์ชันไม่สามารถมีชื่อเดียวกันกับฟังก์ชันภายใน หรือฟังก์ชันกำหนดเองที่มีอยู่

หมายเหตุ ถึงแม้ว่าทุกสคริปต์ PHP รู้จักฟังก์ชันภายในทั้งหมด ฟังก์ชันกำหนดเองอยู่เฉพาะในสคริปต์ที่ประกาศสิ่งนี้หมายความว่า ชื่อฟังก์ชันสามารถใช้ในคนละไฟล์แต่อาจจะไปสู่ความสับสน และควรหลีกเลียง

ชื่อฟังก์ชันต่อไปนี้ถูกต้อง
name ()
name2 ()
name_three ()
_namefour ()

ชื่อไม่ถูกต้อง
5name ()
Name-six ()
fopen ()

การเรียกฟังก์ชันไม่มีผลจากชนิดตัวพิมพ์ ดังนั้นการเรียก function_name (), Function_Name() หรือ FUNCTION_NAME() สามารถทำได้และมีผลลัพธ์เหมือนกัน แต่แบบแผนการกำหนดชื่อฟังก์ชันใน PHP ให้ใช้ตัวพิมพ์เล็ก

ชื่อฟังก์ชันแตกต่างจากชื่อตัวแปร โดยชื่อตัวแปรเป็นชนิดตัวพิมพ์มีผล ดังนั้น $Name และ $name เป็น 2 ตัวแปร แต่ Name () และ name () เป็นฟังก์ชันเดียวกัน

การหยุดประมวลผลภายในฟังก์ชัน

คีย์เวิร์ด return หยุดการประมวลผลฟังก์ชัน ฟังก์ชันสิ้นสุดได้เพราะประโยคคำสั่งทั้งหมดได้รับการประมวลผล หรือ ใช้คีย์เวิร์ด return การประมวลผลกลับไปยังประโยคคำสั่งต่อจากการเรียกฟังก์ชัน

<?php

function division($x, $y)
{

if ($y == 0 || !isset($y))
{

echo " ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า" ;
return;

}

$result = $x / $y;
echo $result;

}
?>

ถ้าประโยคคำสั่ง return ได้รับการประมวลผล บรรทัดคำสั่งต่อไปในฟังก์ชันจะถูกข้ามไป และกลับไปยังผู้เรียกฟังก์ชันนี้ ในฟังก์ชันนี้ ถ้า y เป็น 0 จะหยุดการประมวลผล ถ้า y ไม่เท่ากับ 0 จะคำนวณผลหาร

สมมติป้อนค่าเป็น
x = 4, y = 0
x = 4
x = 4, y = 2

ผลลัพธ์ของคำสั่ง คือ
x = 4, y = 0 ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = 2 ผลลัพธ์ 2

การเรียกฟังก์ชัน

เมื่อฟังก์ชันได้รับการประกาศหรือสร้างขึ้นแล้ว การเรียกฟังก์ชันสามารถเรียกมาจากที่ใดๆ ภายในสคริปต์ หรือ จากไฟล์ที่มีการรวมด้วยประโยคคำสั่ง include() หรือ require()

ตัวอย่าง ฟังก์ชัน show_message() เก็บอยู่ในไฟล์ fn_ 03 _keeper.php ส่วนผู้เรียกอยู่ในสคริปต์ fn_ 03 _caller.php

<?php

include("fn_ 03 _keeper.php");
show_message();

?>

พารามิเตอร์

ตามปกติฟังก์ชันส่วนใหญ่ต้องการรับสารสนเทศจากผู้เรียกสำหรับการประมวลผล โดยทั่วไปเรียกว่า พารามิเตอร์

ไวยากรณ์พื้นฐาน

การกำหนดฟังก์ให้รับพารามิเตอร์ส่งผ่านโดยการวางข้อมูล ชื่อตัวแปรที่เก็บข้อมูลภายในวงเล็บหลังชื่อฟังก์ชัน การเรียกฟังก์ชันที่ประกอบด้วยพารามิเตอร์เขียนดังนี้

<?php

function show_parameter($param1, $param2, $param3)
{

echo <<<PARAM
รายการพารามิเตอร์ <br/>
param1: $param1 <br/>
param2: $param2 <br/>
param3: $param3 <br/>

PARAM;

}
?>

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

scope ของพารามิเตอร์จำกัดภายในฟังก์ชัน ถ้าชื่อตัวแปรเหมือนกับตัวแปรใน scope ระดับอื่น พารามิเตอร์นี้ "ระบุ" เป็นตัวแปรภายในที่ไม่มีผลกับตัวแปรภายนอกฟังก์ชัน

การส่งผ่านโดยค่า(By Value)

ตามปกติการส่งผ่านพารามิเตอร์ไปยังฟังก์ชันเป็นการส่งผ่านค่า การเปลี่ยนแปลงจะจำกัดภายในเฉพาะภายในฟังก์ชัน

ตัวอย่างฟังก์ชัน new_value () ที่ยอมให้เพิ่มค่า อาจจะเขียนคำสั่งดังนี้

<?php

function new_value($value, $increment= 1)
{

$value = $value + $increment;

}

$value = 10 ;
new_value($value);
echo "$value<br/>\n";

?>

คำสั่งนี้ใช้ไม่ได้ ผลลัพธ์จะเป็น "10" ค่าใหม่ของ $value ไม่มีการเปลี่ยนแปลง

สิ่งนี้เป็นเพราะกฎ scope คำสั่งนี้สร้างตัวแปรเรียกว่า $value เป็น 10 เมื่อเรียกฟังก์ชัน new_value () ตัวแปร $value ในฟังก์ชันได้รับการสร้างเมื่อเรียกฟังก์ชัน ค่า 1 ได้รับการเพิ่มให้กับตัวแปร ดังนั้นค่าของ $value คือ 11 ภายในฟังก์ชัน จนกระทั่งสิ้นสุดฟังก์ชัน แล้วกลับไปยังคำสั่งที่เรียกภายในคำสั่งนี้ ตัวแปร $value เป็นอีกตัวแปร global scope และไม่มีการเปลี่ยนแปลง

การส่งผ่านโดยการอ้างอิง (By Reference)

ตามตัวอย่างฟังก์ชัน new_value ถ้าต้องการให้ฟังก์ชันเปลี่ยนแปลงค่าได้ มีวิธีหนึ่งในการแก้ไขคือ ประกาศ $value ในฟังก์ชันเป็น global แต่หมายความว่าในการใช้ฟังก์ชันนี้ ตัวแปรที่ต้องการเพิ่มค่าต้องตั้งชื่อเป็น $value แต่มีวิธีดีกว่าคือ ใช้การส่งผ่านโดยการอ้างอิง

การอ้างอิงไปตัวแปรต้นทางแทนที่มีค่าของตัวเอง การปรับปรุงไปยังการอ้างอิงจะมีผลกับตัวแปรต้นทางด้วย

การระบุพารามิเตอร์ที่ใช้การส่งผ่านโดยการอ้างอิงให้วาง ampersand (&) หน้าชื่อพารามิเตอร์ในข้อกำหนดฟังก์ชัน

ตัวอย่าง new_value () ได้รับปรับปรุงให้มี 1 พารามิเตอร์ส่งผ่านโดยการอ้างอิงและทำงานได้อย่างถูกต้อง

<?php

function new_value(&$value, $increment=1)
{

$value = $value + $increment;

}
?>

คำสั่งทดสอบฟังก์ชัน ให้พิมพ์ 10 ก่อนการเรียก increment () และ 11 ภายหลัง

ในการส่งค่าโดยการอ้างอิงต้องส่งเป็นตัวแปรไม่สามารถกำหนดค่าคงที่โดยตรง

จำนวนตัวแปรของพารามิเตอร์

การส่งผ่านพารามิเตอร์ไปยังฟังก์ชันนั้น การควบคุมของ PHP ได้กำหนดฟังก์ชันจำนวนหนึ่งให้ยอมรับจำนวนตัวแปรของพารามิเตอร์ ได้แก่ func_num_args, func_get_arg และ func_get_args

func_num_args() บอกจำนวนพารามิเตอร์ไปยังฟังก์ชันที่เรียก func_get_arg() แสดงค่าของพารามิเตอร์ตามดัชนี และ func_get_args() ส่งออก array ของพารามิเตอร์

<?php

function show_pass_value()
{

$idx = count(func_get_args());
echo " จำนวนพารามิเตอร์ $idx <br/>\n";

if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_arg<br/>\n";

for ($i = 0 ; $i < $idx; $i++)
{

echo " พารามิเตอร์ที่ $i ค่า: ". func_get_arg($i)."<br/>\n";

}

if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_args<br/>\n";

$params = func_get_args();

foreach ($params as $index => $val)
{

echo " พารามิเตอร์ที่ $index ค่า: $val<br/>\n";

}

echo " *********<br/>\n";

}

$x = 4 ;
show_pass_value("one", "two", 3 , $x, " ห้า" , " หก") ;
show_pass_value();

?>

ผลลัพธ์
จำนวนพารามิเตอร์ 6
>> ใช้ฟังก์ชัน func_get_arg
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก

>> ใช้ฟังก์ชัน func_get_args
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก

*********
จำนวนพารามิเตอร์ 0

*********

Scope

เมื่อต้องการใช้ตัวแปรภายในไฟล์ที่รวม ต้องมีการประกาศตัวแปรเหล่านั้นก่อนประโยคคำสั่ง require () หรือ include () แต่เมื่อใช้ฟังก์ชันจะเป็นการส่งผ่านตัวแปรเชิงประจักษ์เหล่านั้นไปยังฟังก์ชัน บางส่วนเป็นเพราะไม่มีกลไกส่งผ่านตัวแปรเชิงประจักษ์ไปยังไฟล์ที่รวม และบางส่วนเป็นเพราะ scope ของตัวแปรของฟังก์ชันแตกต่างกัน

การควบคุม scope ของตัวแปรเป็นการทำให้ตัวแปรมองเห็นได้ ใน PHP มีกฎตั้งค่า scope ดังนี้

การประกาศตัวแปรภายในฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรให้รับการประกาศภายในวงเล็บปีกกา สิ่งนี้เรียกว่า function scope ตัวแปรเรียกว่า local variable
การประกาศตัวแปรภายนอกฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรได้รับการประกาศที่สิ้นสุดแต่ไม่ใช้ภายในฟังก์ชัน สิ่งนี้เรียกว่า global scope ตัวแปรเรียกว่า global variable
การใช้ประโยคคำสั่ง require () และ include () ไม่มีผลกับ scope ถ้าประโยคคำสั่งได้รับการใช้ภายในฟังก์ชัน ประยุกต์ด้วย function scope ถ้าไม่ได้อยู่ภายในฟังก์ชัน ประยุกต์ด้วย global scope
คีย์เวิร์ด global สามารถระบุได้เองเพื่อกำหนดหรือใช้ตัวแปรภายในฟังก์ชันให้มี scope เป็น global
ตัวแปร สามารถลบโดยการเรียก unset ($variable_name) และตัวแปรที่ unset จะไม่มี scope
ตัวแปรระดับ superglobal สามารถเข้าถึงได้ทุกส่วนในสคริปต์
ตัวแปรระดับฟังก์ชัน

ตัวแปรระดับฟังก์ชันหรือ local variable เป็นการประกาศเพื่อใช้เฉพาะภายในฟังก์ชัน ไม่สามารถเรียกจากภายนอกฟังก์ชันได้

<?php

$newline = <<<NLSTRING
<br/>\n

NLSTRING;

$var_global = 10 ;

function show_value()
{

global $newline;
$var_local= 75 ;
echo "\$var_local 1: $var_local";
echo $newline;

}

show_value();
echo "\$var_global : $var_global";
echo $newline;
echo "\$var_local 2: $var_local";
echo $newline;

?>

ผลลัพธ์
$var_global 1 :
$var_local 1: 75

$var_global 2: 10
$var_local 2:

ตามตัวอย่างนี้ ตัวแปรระดับฟังก์ชัน $var_local ไม่สามารถแสดงผลในการพิมพ์ภายนอกฟังก์ชัน show_value() และ $var_global ที่เป็นตัวแปรระดับ global ไม่สามารถแสดงผลภายใน show_value() เพราะมี scope ต่างกัน

ตัวแปรระดับ global

ถ้าต้องการนำตัวแปรระดับ global มาใช้ภายในฟังก์ชันต้องประกาศด้วยคีย์เวิร์ด global ก่อนประโยคคำสั่งที่ใช้ตัวแปรนั้น ตัวอย่าง ฟังก์ชัน show_value() ใช้ $newline จากภายนอกฟังก์ชัน

global $newline;

ตัวแปรสถิตย์

การประกาศตัวแปรสถิตย์ใช้ คีย์เวิร์ด static เมื่อมีการเรียกใช้ฟังก์ชัน โปรแกรมจะกำหนดค่าตัวแปรตามที่ระบุเพียงครั้งเดียว ถ้าเรียกซ้ำอย่างต่อเนื่องค่านี้จะเปลี่ยนแปลงตามการคำนวณ

<?php

function increment()
{

static $increase = 5 ;
$increase++;
echo $increase."<br/>\n";

}

$end = 5 ;

for ($i = 1 ; $i < $end; $i++)
    increment();

?>

ผลลัพธ์
6
7
8
9

ค่าของตัวแปรสถิตย์ได้รับการตั้งทุกครั้งเมื่อเรียกใช้ในครั้งต่อไป

การส่งออกค่าจากฟังก์ชัน

การส่งค่าออกจากฟังก์ชันใช้คีย์เวิร์ด return เช่นเดียวกับการออกจากฟังก์ชันได้ ถ้าไม่มีการระบุส่งออกฟังก์ชันจะส่งค่า NULL

ตัวอย่าง ฟังก์ชัน get_larger () สาธิตการส่งออกค่า

<?

function get_larger($x=NULL, $y=NULL)
{

if (!isset($x) || !isset($y))
    return " ไม่มีการส่งค่า" ;

if ($x > $y)
    return $x;
else if ($x < $y)
    return $y;
else
    return " ค่าเท่ากัน" ;

}

$sends = array();
$sends[0] = array('x' =>5);
$sends[1] = array('x' =>9, 'y'=>3);
$sends[2] = array('x' =>5, 'y'=>8);
$sends[3] = array('x' =>4, 'y'=>4);

foreach ($sends as $send)
{

echo "x = ".$send['x']." y = ".$send['y']." : ค่า - > "
.get_larger($send['x'], $send['y']);
echo "<br/>\n";

}

?>

ผลลัพธ์
x = 5 y = : ค่า - > ไม่มีการส่งค่า
x = 9 y = 3 : ค่า - > 9
x = 5 y = 8 : ค่า - > 8
x = 4 y = 4 : ค่า - > ค่าเท่ากัน

ฟังก์ชันที่ทำงานอาจเดียว แต่ไม่จำเป็นต้องส่งออกค่า มักจะส่งออก TRUE หรือ FALSE เพื่อระบุความสำเร็จหรือล้มเหลว ค่า TRUE หรือ FALSE สามารถได้รับการแสดงแทนด้วย 1 หรือ 0

Recursion

recursion ได้รับการสนับสนุนใน PHP ฟังก์ชันชนิดนี้เป็นการเรียกตัวเองและเป็นประโยชน์กับการบังคับโครงสร้างข้อมูลไดนามิคส์ เช่น รายการเชื่อมโยงและโครงสร้างต้นไม้ (tree)

โปรแกรมประยุกต์เว็บจำนวนไม่มากต้องการโครงสร้างข้อมูลซับซ้อนมากและจำกัดการใช้ เนื่องจาก recursion ช้ากว่าและใช้หน่วยความจำมากกว่าการทำงานวนรอบ ดังนั้นควรเลือกการทำงานแบบวนรอบปกติ ถ้าเป็นไปได้

ตัวอย่างการประยุกต์แบบย้อนกลับตัวอักษร

<?php

function word_reverse_r($str)
{

if (strlen($str)>0)
    word_reverse_r(substr($str, 1));

echo substr($str, 0, 1);
return;

}

function word_reverse_i($str)
{

for ($i=1; $i<=strlen($str); $i++)
{

echo substr($str, -$i, 1);

}

return;

}
?>

รายการคำสั่งของ 2 ฟังก์ชันนี้จะพิมพ์ข้อความย้อนกลับ ฟังก์ชัน word_reverse_r เป็น recursion ฟังก์ชัน word_reverse_i เป็นการวนรอบ

ฟังก์ชัน word_reverse_r ใช้ข้อความเป็นพารามิเตอร์ เมื่อมีการเรียกฟังก์ชันนี้ จะเกิดการเรียกตัวเองแต่ละครั้งส่งผ่านตัวอักษรที่ 2 ไปถึงตัวอักษรสุดท้าย

การเรียกฟังก์ชันแต่ละครั้งจะทำสำเนาใหม่ของคำสั่งในหน่วยความจำของแม่ข่าย แต่ด้วยพารามิเตอร์ต่างกัน ดังนั้นจึงเหมือนกับการเรียกคนละฟังก์ชัน

วันพุธที่ 5 พฤศจิกายน พ.ศ. 2557

Database



Database หรือ ฐานข้อมูล คือ กลุ่มของข้อมูลที่ถูกเก็บรวบรวมไว้ โดยมีความสัมพันธ์ซึ่งกันและกัน โดยไม่ได้บังคับว่าข้อมูลทั้งหมดนี้จะต้องเก็บไว้ในแฟ้มข้อมูลเดียวกันหรือแยกเก็บหลาย ๆ แฟ้มข้อมูล

ระบบฐานข้อมูล (Database System) คือ ระบบที่รวบรวมข้อมูลต่าง ๆ ที่เกี่ยวข้องกันเข้าไว้ด้วยกันอย่างมีระบบมีความสัมพันธ์ระหว่างข้อมูลต่าง ๆ ที่ชัดเจน ในระบบฐานข้อมูลจะประกอบด้วยแฟ้มข้อมูลหลายแฟ้มที่มีข้อมูล เกี่ยวข้องสัมพันธ์กันเข้าไว้ด้วยกันอย่างเป็นระบบและเปิดโอกาสให้ผู้ใช้สามารถใช้งานและดูแลรักษาป้องกันข้อมูลเหล่านี้ ได้อย่างมีประสิทธิภาพ โดยมีซอฟต์แวร์ที่เปรียบเสมือนสื่อกลางระหว่างผู้ใช้และโปรแกรมต่าง ๆ ที่เกี่ยวข้องกับการใช้ฐานข้อมูล เรียกว่า ระบบจัดการฐานข้อมูล หรือ DBMS (data base management system)มีหน้าที่ช่วยให้ผู้ใช้เข้าถึงข้อมูลได้ง่ายสะดวกและมีประสิทธิภาพ การเข้าถึงข้อมูลของผู้ใช้อาจเป็นการสร้างฐานข้อมูล การแก้ไขฐานข้อมูล หรือการตั้งคำถามเพื่อให้ได้ข้อมูลมา โดยผู้ใช้ไม่จำเป็นต้องรับรู้เกี่ยวกับรายละเอียดภายในโครงสร้างของฐานข้อมูล

ประโยชน์ของฐานข้อมูล
1 ลดการเก็บข้อมูลที่ซ้ำซ้อน ข้อมูลบางชุดที่อยู่ในรูปของแฟ้มข้อมูลอาจมี
ปรากฏอยู่หลาย ๆ แห่ง เพราะมีผู้ใช้ข้อมูลชุดนี้หลายคน เมื่อใช้ระบบฐานข้อมูลแล้วจะช่วยให้
ความซ้ำซ้อนของข้อมูลลดน้อยลง
2 รักษาความถูกต้องของข้อมูล เนื่องจากฐานข้อมูลมีเพียงฐานข้อมูลเดียว ใน
กรณีที่มีข้อมูลชุดเดียวกันปรากฏอยู่หลายแห่งในฐานข้อมูล ข้อมูลเหล่านี้จะต้องตรงกัน ถ้ามีการ
แก้ไขข้อมูลนี้ทุก ๆ แห่งที่ข้อมูลปรากฏอยู่จะแก้ไขให้ถูกต้องตามกันหมดโดยอัตโนมัติด้วย
ระบบจัดการฐานข้อมูล
3 การป้องกันและรักษาความปลอดภัยให้กับข้อมูลทำได้อย่างสะดวก การ
ป้องกันและรักษาความปลอดภัยกับข้อมูลระบบฐานข้อมูลจะให้เฉพาะผู้ที่เกี่ยวข้องเท่านั้น
ซึ่งก่อให้เกิดความปลอดภัย(security) ของข้อมูลด้วย


วันอาทิตย์ที่ 2 พฤศจิกายน พ.ศ. 2557

PHP คืออะไร


           หลายคนที่ทำเว็บไซต์ด้วย HTML หรือโปรแกรมช่วยสร้างเว็บไซต์ต่างๆ เช่น Dreamweaver แล้วอาจสงสัยว่าเมื่อทำ form สำหรับ รับค่าเช่น ชื่อ ที่อยู่ เสร็จแล้วจะเก็บค่ายังไง หรือจะทำอย่างไรต่อ หรือเว็บบอร์ดทำงานอย่างไร CMS ทำงานอย่างไร ทำไมบางเว็บไซต์สามารถโต้ตอบกับ ผู้ใช้งานได้ คำตอบของทุกคำถามคือ PHP ครับ

         PHP นั้นเป็นภาษาสำหรับใช้ในการเขียนโปรแกรมบนเว็บไซต์ สามารถเขียนได้หลากหลายโปรแกรมเช่นเดียวกับภาษาทั่วไป อาจมีข้อสงสัยว่า ต่างจาก HTML อย่างไร คำตอบคือ HTML นั้นเป็นภาษาที่ใช้ในการจัดรูปแบบของเว็บไซต์ จัดตำแหน่งรูป จัดรูปแบบตัวอักษร หรือใส่สีสันให้กับ เว็บไซต์ของเรา แต่ PHP นั้นเป็นส่วนที่ใช้ในการคำนวน ประมวลผล เก็บค่า และทำตามคำสั่งต่างๆ อย่างเช่น รับค่าจากแบบ form ที่เราทำ รับค่าจากช่องคำตอบของเว็บบอร์ดและเก็บไว้เพื่อนำมาแสดงผลต่อไป แม้แต่กระทั่งใช้ในการเขียน CMS ยอดนิยมเช่น Drupal , Joomla พูดง่ายๆคือเว็บไซต์จะโต้ตอบกับผู้ใช้ได้ ต้องมีภาษา PHP ส่วน HTML หรือ Javascript ใช้เป็นเพียงแค่ตัวควบคุมการแสดงผลเท่านั้น

การจะเขียน PHP ต้องมีอะไรบ้าง

        อย่างที่บอกไปว่า PHP นั้นจำเป็นจะต้องมีการประมวลผลดังนั้นการใช้งานเราจะต้องมี Web Server เพื่อให้ตัว PHP สามารถทำงานได้ ต่างจาก HTML งั้นจะทำอย่างไรถ้าเราไม่ได้เช่า Web Server เอาไว้จะใช้งาน PHP ไม่ได้หรือ คำตอบคือได้ครับ แต่เราจะต้องลงโปรแกรม ให้เครื่องที่เราใช้งานอยู่นั้นทำงานเหมือนกับ Web Server ซะก่อนซึ่งโปรแกรมนั้นชื่อว่า Apache ครับเป็นโปรแกรมฟรีเหมือนกัน นี่เป็นข้อดี ที่ทำให้ทุกคนรัก PHP ครับ หลังจากที่เราทำให้เครื่องของเรานั้นเหมือนกับ Web Server แล้วจะเก็บข้อมูลเว็บไซต์เช่น คำตอบของเว็บบอร์ด จะเก็บอย่างไร คำตอบคือต้องมีโปรแกรมฐานข้อมูลอีกตัวเข้ามาช่วยครับ ซึ่งโปรแกรมที่แนะนำคือ MySQL ครับฟรีอีกเช่นกัน ทั้งหมดสำหรับมือใหม่อาจ จะเริ่มลงโปรแกรมทั้งหมดนั้นยากนะครับ จึงมีโปรแกรมที่รวมทุกอย่าง เพื่อจำลองเครื่องของเราให้เป็น Web Server เลยสามารถลงได้ง่ายๆ ซึ่ง จะมีสอนในบทต่อไปนะครับ

การพัฒนาเว็บไซต์ด้วย PHP

          สำหรับผู้พัฒนาเว็บไซต์ด้วย PHP นั้นปรกติจะทำการจำลองเครื่องของตัวเองให้เป็น Web Server ระหว่างการพัฒนาเพื่อดูการทำงาน ของโปรแกรมที่เขียนขึ้นมาครับ จากนั้นจึงจะอัพไฟล์ทั้งหมดลงใน Web Server จริงครับ ในส่วนของ Web Server นั้นทาง Hellomyweb ก็มีให้บริการอยู่นะครับ สนใจคลิกที่นี่ครับ ถามว่าเราจะให้เครื่องคอมพิวเตอร์ของเรานั้นทำงานได้เหมือนกับ Web server จริงได้หรือไม่ คำตอบคือได้ครับ แต่มันออกจะไม่คุ่มค่า ทางการเงินนะครับ เพราะเราต้องเสียค่าไฟ ค่าอินเตอร์เน็ต เครื่องคอมก็ต้องเปิดไว้ตลอดปิดไม่ได้ เวลาผู้ใช้งานจากภายนอกมาเรียกใช้ก็รองรับไม่ได้ไม่มาก ดังนั้นการเช่า Web Server ภายนอกจะคุ่มค่ามากกว่าครับ หากต้องการจะพัฒนาเว็บไซต์เพื่อใช้งานจริงๆ


วันเสาร์ที่ 13 กันยายน พ.ศ. 2557

เครือข่ายคอมพิวเตอร์

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

 

ตัวอย่างเครือข่ายคอมพิวเตอร์ที่จัดกลุ่มอุปกรณ์รอบข้างเชื่อมโยงเป็นระบบ

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

 ความหมายของระบบเครือข่าย
              ระบบเครือข่ายคอมพิวเตอร์ (Computer Network) หมายถึงการนำเครื่องคอมพิวเตอร์ มาเชื่อมต่อเข้าด้วยกัน โดยอาศัยช่องทางการสื่อสารข้อมูล เพื่อแลกเปลี่ยนข้อมูลข่าวสารระหว่างเครื่องคอมพิวเตอร์ และการใช้ทรัพยากรของระบบร่วมกัน (Shared Resource) ในเครือข่ายนั้น

รูปแสดงระบบเครือข่ายคอมพิวเตอร์
             ระบบเครือข่ายคอมพิวเตอร์ มีองค์ประกอบที่สำคัญ เพื่อการเชื่อมต่อเป็นเครือข่ายคอมพิวเตอร์ ได้แก่ คอมพิวเตอร์แม่ข่าย (File Server) ช่องทางการสื่อสาร (Communication Chanel) สถานีงาน (Workstation or Terminal) และ อุปกรณ์ในเครือข่าย (Network Operation System)

 คอมพิวเตอร์แม่ข่าย
       คอมพิวเตอร์แม่ข่าย หมายถึงคอมพิวเตอร์ ที่ทำหน้าที่เป็นผู้ให้บริการทรัพยากร (Resources) ต่าง ๆ ซึ่งได้แก่ หน่วยประมวลผล หน่วยความจำ หน่วยความจำสำรอง ฐานข้อมูล และ โปรแกรมต่าง ๆ เป็นต้น ในระบบเครือข่ายท้องถิ่น (LAN) มักเรียกว่าคอมพิวเตอร์แม่ข่าย ในระบบเครือข่ายระยะไกล ที่ใช้เมนเฟรมคอมพิวเตอร์ หรือ มินิคอมพิวเตอร์เป็นศูนย์กลางของเครือข่าย เรานิยมเรียกว่า Host Computer และเรียกเครื่องที่รอรับบริการว่าลูกข่ายหรือสถานีงาน



 ช่องทางการสื่อสาร

             ช่องทางการสื่อสาร หมายถึง สื่อกลางหรือเส้นทางที่ใช้เป็นทางผ่าน ในการรับส่งข้อมูล ระหว่างผู้รับ (Receiver) และผู้ส่งข้อมูล (Transmitter) ปัจจุบันมีช่องทางการสื่อสาร สำหรับการเชื่อมต่อเครือข่าย คอมพิวเตอร์มีหลายประเภทคือ สายโทรศัพท์แบบสายคู่ตีเกลียวไม่มีฉนวนหุ้ม (UTP) สายคู่ตีเกลียว แบบมีฉนวนหุ้ม (STP) สายโคแอคเชียล สายใยแก้วนำแสง คลื่นไมโครเวป และดาวเทียม เป็นต้น



สถานีงาน

             สถานีงาน (Workstation or Terminal) หมายถึง อุปกรณ์หรือเครื่องไมโครคอมพิวเตอร์ ที่เชื่อมต่อ กับเครือข่ายคอมพิวเตอร์ ทำหน้าที่เป็นสถานีปลายทางหรือสถานีงาน ที่ได้รับการบริการจากเครื่อง คอมพิวเตอร์แม่ข่าย เรียกว่าเป็นคอมพิวเตอร์ลูกข่าย (Workstation) ในระบบเครือข่ายระยะใกล้ มักมีหน่วยประมวลผล หรือซีพียูของตนเอง ในระบบที่ใช้เครื่องคอมพิวเตอร์เมนเฟรม เป็นศูนย์กลาง เรียกสถานีปลายทางว่าเทอร์มินอล (Terminal) ประกอบด้วยจอภาพและแป้นพิมพ์เท่านั้น ไม่มีหน่วยประมวลกลางของตัวเอง ต้องใช้หน่วยประมวลผลของคอมพิวเตอร์ศูนย์กลางหรือ Host


อุปกรณ์ในเครือข่าย
                การ์ดเชื่อมต่อเครือข่าย (Network Interface Card :NIC) หมายถึง แผงวงจรสำหรับ ใช้ในการเชื่อมต่อสายสัญญาณของเครือข่าย ติดตั้งไว้ในเครื่องคอมพิวเตอร์ที่เป็นเครื่องแม่ข่าย และเครื่องที่เป็นลูกข่าย หน้าที่ของการ์ดนี้คือแปลงสัญญาณจากคอมพิวเตอร์ส่งผ่านไปตามสายสัญญาณ ทำให้คอมพิวเตอร์ในเครือข่ายแลกเปลี่ยนข้อมูลข่าวสารกันได้

รูปแสดงการ์ดเชื่อมต่อเครือข่าย

องค์ประกอบของเครือข่ายคอมพิวเตอร์

โมเด็ม ( Modem : Modulator Demodulator) หมายถึง อุปกรณ์สำหรับการแปลงสัญญาณดิจิตอล (Digital) จากคอมพิวเตอร์ด้านผู้ส่ง เพื่อส่งไปตามสายสัญญาณข้อมูลแบบอนาลอก(Analog) เมื่อถึงคอมพิวเตอร์ด้านผู้รับ โมเด็มก็จะทำหน้าที่แปลงสัญญาณอนาลอก ให้เป็นดิจิตอลนำเข้าสู่เครื่องคอมพิวเตอร์ เพื่อทำการประมวลผล โดยปกติจะใช้โมเด็มกับระบบเครือข่ายระยะไกล โดยการใชสายโทรศัพท์เป็นสื่อกลาง เช่น เครือข่ายอินเทอร์เน็ต เป็นต้น


รูปแสดงการใช้โมเด็มในการติดต่อเครือข่ายระยะไกล


ฮับ ( Hub) คือ อุปกรณ์เชื่อมต่อที่ใช้เป็นจุดรวม และ แยกสายสัญญาณ เพื่อให้เกิดความสะดวก ในการเชื่อมต่อของเครือข่ายแบบดาว (Star) โดยปกติใช้เป็นจุดรวมการเชื่อมต่อสายสัญญาณระหว่าง File Server กับ Workstation ต่าง ๆ

แสดงฮับที่ใช้เป็นจุดเชื่อมต่อและจุดแยกของสาย

 

ซอฟต์แวร์ระบบปฏิบัติการเครือข่าย

             ซอฟต์แวร์ระบบปฏิบัติการเครือข่าย หมายถึง ซอฟต์แวร์ที่ทำหน้าที่ จัดการระบบเครือข่ายของคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์ ที่เชื่อมต่ออยู่กับเครือข่าย สามารถติดต่อสื่อสาร แลกเปลี่ยนข้อมูลกันได้อย่างถูกต้อง และมีประสิทธิภาพ ทำหน้าที่จัดการด้านการรักษาความปลอดภัย ของระบบเครือข่าย และยังมีหน้าที่ควบคุม การนำโปรแกรมประยุกต์ ด้านการติดต่อสื่อสาร มาทำงานในระบบเครือข่ายอีกด้วย นับว่าซอฟต์แวร์ระบบปฏิบัติการเครือข่าย มีความสำคัญต่อเครือข่ายคอมพิวเตอร์อย่างยิ่ง ตัวอย่าง ซอฟต์แวร์ประเภทนี้ได้แก่ ระบบปฏิบัติการ Windows NT , Linux , Novell Netware , Windows XP ,Windows 2000 , Solaris , Unix เป็นต้น


แสดงซอฟต์แวร์ระบบปฏิบัติการเครือข่าย

 โครงสร้างเครือข่ายคอมพิวเตอร์ (TOPOLOGY)

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

1. โครงสร้างเครือข่ายคอมพิวเตอร์แบบบัส (bus topology)

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


2. โครงสร้างเครือข่ายคอมพิวเตอร์แบบวงแหวน (ring topology)

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


3. โครงสร้างเครือข่ายคอมพิวเตอร์แบบดาว (star topology)

        โครงสร้างเครือข่ายคอมพิวเตอร์แบบดาว ภายในเครือข่ายคอมพิวเตอร์จะต้องมีจุกศูนย์กลางในการควบคุมการเชื่อมต่อคอมพิวเตอร์ หรือ ฮับ (hub) การสื่อสารระหว่างเครื่องคอมพิวเตอร์ต่างๆ จะสื่อสารผ่านฮับก่อนที่จะส่งข้อมูลไปสู่เครื่องคอมพิวเตอร์เครื่องอื่นๆ โครงสร้างเครือข่ายคอมพิวเตอร์ แบบดาวมีข้อดี คือ ถ้าต้องการเชื่อมต่อคอมพิวเตอร์เครื่องใหม่ก็สามารถทำได้ง่ายและไม่กระทบต่อเครื่องคอมพิวเตอร์อื่นๆ ในระบบ ส่วนข้อเสีย คือ ค่าใช้จ่ายในการใช้สายเคเบิ้ลจะค่อนข้างสูง และเมื่อฮับไม่ทำงาน การสื่อสารของคอมพิวเตอร์ทั้งระบบก็จะหยุดตามไปด้วย




ระบบคอมพิวเตอร์ (Computer System)

 ระบบ (System) คือกลุ่มขององค์ประกอบที่มีความสัมพันธ์กันและทำงานร่วมกัน ซึ่งระบบคอมพิวเตอร์จะมีองค์ประกอบที่สำคัญ 3 ส่วน คือ
  1. ฮาร์ดแวร์ (Hardware)
  2. ซอฟต์แวร์ (Software)
  3. บุคลากร (Peopleware)
ฮาร์ดแวร์ (Hardware) หมายถึง อุปกรณ์ต่าง ๆ ที่เป็นตัวเครื่องคอมพิวเตอร์ แบ่งออกเป็นส่วนประกอบดังนี้
หน่วยรับข้อมูล หน่วยประมวลผล หน่วยแสดงผล
1.     หน่วยรับข้อมูล (Input unit) เป็นอุปกรณ์รับเข้า ทำหน้าที่รับโปรแกรมและข้อมูลเข้าสู่เครื่องคอมพิวเตอร์ อุปกรณ์รับเข้าที่ใช้กันเป็นส่วนใหญ่ คือ แป้นพิมพ์ ( Keyboard ) และเมาส์ ( Mouse)  นอกจากนี้ยังมีอุปกรณ์รับเข้าอื่น ๆ อีก ได้แก่ สแกนเนอร์ ( Scanner), วีดีโอคาเมรา (Video Camera), ไมโครโฟน (Microphone),ทัชสกรีน (Touch screen), แทร็คบอล (Trackball), ดิจิตเซอร์ เทเบิ้ล แอนด์ ครอสแชร์ (Digiter tablet and crosshair)

2.    หน่วยประมวลผลกลาง (Central Processing Unit) หรือเรียกโดยทั่ว ๆ ไปว่า CPU ซึ่งถือว่าเป็นสมองของระบบคอมพิวเตอร์ มีส่วนประกอบที่สำคัญ 2 ส่วน คือ หน่วยควบคุม หน่วยคำนวณ
  1. หน่วยควบคุม (Control Unit หรือ CU) ทำหน้าที่ควบคุมลำดับขั้นตอนการทำงานของหน่วยรับข้อมูล หน่วยแสดงผล หน่วยคำนวณและหน่วยตรรก หน่วยความจำและแปลคำสั่ง
  2. หน่วยคำนวณและตรรก (Arithmetic and Logic Unit หรือ ALU) ทำหน้าที่ในการคำนวณหาตัวเลข เช่น การบวก ลบ การเปรียบเทียบ
  3. หน่วยความจำ เป็นอุปกรณ์ใช้เก็บโปรแกรมและข้อมูลที่ใช้ในการประมวลผล
3.    หน่วยความจำภายใน (Primary Storage Section หรือ Memory) เป็นหน่วยความจำที่อยู่ภายในเครื่องคอมพิวเตอร์ที่สามารถติดต่อกับหน่วยงานอื่น ๆ ได้โดยตรง แบ่งออกเป็น 2 ประเภท
  1. หน่วยความจำภายใน
หน่วยความจำแบบแรม (Random Access Memory หรือ Ram) เป็นหน่วยความจำชั่วคราว ที่ใช้สำหรับเก็บโปรแกรมที่กำลังใช้งานอยู่ขณะนั้น มีความจุของหน่วยเก็บข้อมูลไม่เกิน 640 KB คือผู้ใช้สามารถเขียนหรือลบไปได้ตลอดเวลา ถ้าหากปิดเครื่องคอมพิวเตอร์หรือไฟฟ้าดับ จะมีผลทำให้ข้อมูลต่าง ๆ ที่เก็บไว้สูญหายไปหมด และไม่สามารถเรียกกลับคืนมาได้
- หน่วยความจำแบบรอม (Read Only Memory หรือ Rom) เป็นหน่วยความจำถาวร ที่สามารถอ่านได้อย่างเดียว ไม่สามารถบันทึกข้อมูลได้ ถึงแม้ว่าจะปิดเครื่องหรือไฟฟ้าดับ ข้อมูลที่เก็บไว้จะยังคงอยู่            2.    หน่วยความจำสำรอง ได้แก่ เทปแม่เหล็ก จานแม่เหล็ก แผ่นดิสก์ (Diskett) CD-ROM
แผ่นดิสก์หรือสเกต เป็นจานแม่เหล็กขนาดเล็ก ชนิดอ่อน จัดเก็บข้อมูลโดยใช้อำนาจแม่เหล็ก การใช้งานจะต้องมี Disk Drive เพื่อใช้เป็นอุปกรณ์ในการขับเคลื่อนแผ่นดิสก์ โดยแบ่งตำแหน่งพื้นผิวออกเป็น แทร็คและเซ็คเตอร์ แบ่งออกเป็น 3 ขนาด คือ
  1. แผ่นดิสก์ขนาด 8 นิ้ว ปัจจุบันไม่นิยมใช้
  2. แผ่นดิสก์ขนาด 5.25 นิ้ว แบ่งออกเป็น DD สามรถบันทึกข้อมูลได้ประมาณ 360 KB และ HD สามารถบันทึกข้อมูลได้ 1.2 MB
  3. แผ่นดิสก์ขนาด 3.5 นิ้ว แบ่งออกเป็น DD สามารถบันทึกข้อมูลได้ประมาณ 720 KB และ HD สามารถบันทึกข้อมูลได้ 1.44 MB นิยมใช้กันมากในปัจจุบัน
                                                   



        
     ขนาด 5.25 นิ้ว              ขนาด 1.44 MB


หน่วยวัดความจุของข้อมูลในคอมพิวเตอร์

  8 Bit 
1 Byte
1 Byte1 ตัวอักษร
1 KB  1,024 Byte
1 MB 1,024 KB
1 GB 1,024 MB
1 TB  1,024 GB

    หน่วยความจำต่ำสุด คือ บิต (BIT [Binary Digit]) โดยใช้บิตแทน 1 ตัวอักขระ หรือ 1 ไบต์ (Bite) หน่วยที่ใหญ่ขึ้นมาอีกหน่วย คือ กิโลไบต์ (Kilobyte) โดยที่ 1 กิโลไบต์ มีค่าเท่ากับ 2 10ไบต์ หรือ 1,024 ไบต์ หน่วยความจำที่ใหญ่ขึ้นไปอีก เรียกว่า เมกะไบต์ กิกะไบต์ และเทระไบต์
ฮาร์ดดิสก์ ( Hard Disk ) เป็นจานแม่เหล็กชนิดแข็ง ชนิดติดแน่นไม่มีการเคลื่อนที่ สามารถบรรจุข้อมูลได้จำนวนมาก เป็น 2 ขนาด คือ                1.  ขนาด 5.25 นิ้ว (ปัจจุบันเลิกใช้แล้ว)
             2. ขนาด 3.5 นิ้ว
            ทั้ง 2 ขนาดจะมีความจุ ตั้งแต่ 10,20,40,80,120,300,400 MB1 GB,2 GB ฯลฯ ปัจจุบันนิยมใช้ตั้งแต่ 10 GB ขึ้นไป





 Hard disk
Data Rate หมายถึง ความเร็วในการอ่านข้อมูลจากดิสก์ไปสู่สมองของเครื่องคอมพิวเตอร์ (หรือมีความเร็วในการนำข้อมูลมาจากสมองเครื่องไปบันทึกลงบนดิสก์) มีหน่วยวัดเป็น จำนวนไบต์ต่อวินาที ( Bytes Per Second หรือ bps )
ซีดีรอม (CD-Rom ) เป็นจานแสงชนิดหนึ่ง ใช้เก็บข้อมูลที่มีความเร็วในการใช้งานสูง มี
                        คุณสมบัติดังนี้
  • เป็นสื่อที่สามารถเก็บข้อมูลได้เป็นจำนวนมาก โดยจะมีความจุสูงถึง 2 GB (2 พันล้านไบต์)
  • มีขนาดเล็ก สามารถเคลื่อนย้ายได้สะดวก
  • ใช้เทคโนโลยีของแสงเลเซอร์ในการอ่านเขียนข้อมูล
  • เป็นจานแสงชนิดอ่านได้อย่างเดียว ( Read Only Memory ) ไม่สามารถเขียนหรือลบข้อมูลได้

CD - ROM

3.    หน่วยแสดงผล (Output Unit) ทำหน้าที่แสดงผลลัพธ์ที่ได้จากการประมวลผลของเครื่องคอมพิวเตอร์ หรือใช้เก็บผลลัพธ์เพื่อนำไปใช้ภายหลัง ได้แก่ จอภาพ (Monitor) เป็นอุปกรณ์ส่งออกมากที่สุด เครื่องพิมพ์ (Printer)

ซอฟแวร์ (Software) หมายถึง โปรแกรมชุดคำสั่งที่เขียนให้เครื่องคอมพิวเตอร์ปฏิบัติตาม ซึ่งมี 2ประเภท คือ
  1. ซอฟแวร์ควบคุมระบบ (System Software) คือ ชุดคำสั่งหรือโปรแกรมที่ควบคุมการทำงานของคอมพิวเตอร์ เป็นสื่อกลางระหว่างโปรแกรมประยุกต์กับเครื่องคอมพิวเตอร์ เพื่อช่วยในการจัดการทรัพยากรของคอมพิวเตอร์ ได้แก่ โปรแกรมควบคุมเครื่อง ระบบปฏิบัติการ เช่น DOS, Windows, Os/2, Unix
  2. ซอฟแวร์ประยุกต์ (Application Software) คือ ชุดคำสั่งหรือโปรแกรมที่เขียนขึ้นมาเพื่อให้เครื่องคอมพิวเตอร์ทำงานตามที่ผู้ใช้ต้องการ ได้แก่ โปรแกรมสำเร็จรูปต่าง ๆ
        บุคลากร (Peopleware) หมายถึง บุคลากรทางคอมพิวเตอร์ที่ทำหน้าที่ในการใช้และดูแลเครื่องคอมพิวเตอร์ เช่น นักเขียนโปรแกรม (Programmer) นักวิเคราะห์ระบบ (System Analyst) เป็นต้น