บทที่ 7 สถาปัตยกรรมเทียร์ (tier architecture) และ...

50
วิชา เทคโนโลยีเว็บ (รหัสวิชา 04-06-204) สถาปัตยกรรมเทียร์ (Tier Architecture) และ การพัฒนาแอปพลิเคชันบนเว็บแบบ Client/Server บทที่ 7 เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 1

Upload: others

Post on 01-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

วิชา เทคโนโลยีเว็บ (รหัสวิชา 04-06-204)

สถาปัตยกรรมเทียร์ (Tier Architecture) และ การพัฒนาแอปพลิเคชันบนเว็บแบบ Client/Server บทที่ 7

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

1

Page 2: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

วัตถุประสงค์การเรียนรู้

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

2

เพื่อให้ผู้เรียนมีความรู้ความเข้าใจเกี่ยวกับสถาปัตยกรรมเทียร์ (Tier architecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เพื่อให้ผู้เรียนสามารถน าเสนอการด าเนินงานเกี่ยวกับระบบฐานข้อมูลบนเว็บร่วมกับฐานข้อมูลเบื้องต้นได้

Page 3: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

หัวข้อ

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

3

บทน า (Overview) สถาปัตยกรรมเทยีร์ (Tier architecture)

ระบบฐานข้อมูลและเว็บ (Web and Database System)

Xampp เว็บเซิร์ฟเวอร์

ภาษา PHP เบื้องต้น

ฐานข้อมูล MySQL เบื้องต้น

สรุป (Summary)

Page 4: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรมเทียร์ (Tier architecture)

เอกสารประกอบการสอน

4

รายวิชา เทคโนโลยีเว็บ (04-06-204)

Page 5: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

บทน า (Overview)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

5

สถาปัตยกรรมเอ็นเทียร์ (N-Tier) จ าแนกออกเป็น 3 รูปแบบ ดังนี้ 2 Tier

Client/Server เป็นการรับ-ส่งข้อมูลจากโปรแกรมไปยัง Database Server ส่วนใหญ่จะใช้ในงานส านักงานหรือในองค์กรเดียวกัน

3 Tier สิ่งที่เพิ่มเข้ามาเรียกว่า “Middle Tier” หรือ “Middleware” Software จัดการการรับส่งข้อมูลระหว่าง Client/Server ส่งผลให้ระบบมีประสิทธิภาพมากขึ้น

Multi-tier (N-tier) Tier (ชั้น) จ านวนมากมาย (n-tier n = แทนชั้นใดๆ) มีการแตกแขนง Tier ต่างๆ มากขึ้นในชั้นของ Middle และ Server เพื่อให้ระบบท างานได้อย่างมีประสิทธิภาพ มีการเก็บข้อมูลอย่างเป็นระเบียบและรองรับผู้ใช้งานที่

เพิ่มขึ้น

Page 6: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรม 2 เทียร์ (2-tier architecture)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

6

Client–server model เป็นโครงสร้าง application ที่แยกส่วนการด าเนินงานระหว่าง Servers

ฝั่งผู้ให้บริการหรือทรัพยากร

สามารถประมวลผลโปรแกรมได้มากกว่าหนึ่งโปรแกรมบน

Clients

ผู้ขอใช้บริการหรือทรัพยากร

การสื่อสารระหว่าง Clients/servers ด าเนินการผ่านระบบเครือข่าย โดย Client จะเริ่มต้นสื่อสารและ Server จะอยู่ในสถานะรอการเชื่อมต่อ

Page 7: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรม 2 เทียร์ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

7

ที่มา: http://www.cs.science.cmu.ac.th/

Static Web

Dynamic Web

Page 8: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรม 2 เทียร์ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

8

แอปพลิเคชันประยุกต์ที่ใช้สถาปัตยกรรม Client/Server E-mail Network printing World Wide Web (WWW)

Server Module IIS (ASP/ASP.NET) Apache, XAMPP (PHP) Tomcat (JSP)

Page 9: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรมทรเีทียร์ (Three-tier architecture)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

9

Three-tier architecture ประกอบด้วย ดังนี ้ Presentation tier (View)

Domain logic tier (Controller)

Data storage tier (Model)

Layer และ Tier มีแนวคิดเดียวกันสามารถใช้ทดแทนกันได้

ส่วนใหญ่ใช้งานบนแพลตฟอร์มที่ต่างกัน

ทรีเทียร์โมเดลเป็นหนึ่งใน Software Architecture Patterns

Page 10: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 10

ที่มา: http://en.wikipedia.org/wiki/Multitier_architecture

User Interface Translate tasks และ

result ไปยังผู้ใช้

Process commands ตรรกะการตัดสินใจ การค านวณ

ฐานข้อมูล การจัดเก็บไฟล์

Page 11: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรมทรีเทียร:์ Model-View-Controller (MVC)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

11

Model-View-Controller MVC รูปแบบโครงสร้างระบบจะแยกส่วนประมวลผล ออกจากส่วนแสดงผล

Models อธิบายโครงสร้างข้อมูล ในรูปแบบคลาส

แบบจ าลองมีฟังก์ชันที่ช่วยให้เพิ่ม ปรับปรุงและลบข้อมูลในฐานข้อมูล

View ข้อมูลที่แสดงให้กับผู้ใช้ View

ส่วนใหญ่จะเป็นเว็บเพจ สามารถเป็นเพียงบางส่วนของหน้าได้ ส่วนหัว ส่วนท้าย มันสามารถจะเป็นหน้า RSS หรือเป็นอย่างอื่นได้ที่เป็น “เพจ”

Controller สื่อกลางระหว่าง Model, View และแหล่งที่มาอื่นๆ ที่ต้องการท างานร่วมกับ HTTP request

และการสร้างเว็บเพจ

Page 12: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 12 ที่มา: http://dailydevtips.com

Page 13: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สถาปัตยกรรมทรเีทียร์ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

13

วัตถุประสงค์ Upgraded หรือ Replaced ทันทีทันใดส าหรับการตอบสนองส าหรับการ

เปลี่ยนแปลง Requirements

Technology

ตัวอย่าง การปรับปรุง Operating system ใน Presentation tier ซึ่งจะมีผลกระทบ

ต่อส่วนต่อประสานผู้ใช้เท่านั้น

Page 14: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

การใช้งานส าหรับการพัฒนาเว็บ

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

14

การพัฒนาเว็บแอพพลิเคชัน่ three-tier อ้างถึงเว็บไซต์เชิงพาณิชย์อิเล็กทรอนิกส์ทั่วไป ประกอบด้วยดังนี ้ Front-end web server

Static content

Cached dynamic content ส าหรับการแสดงผลไปยัง browser

Middle dynamic content

การประมวลผลและการผลิต ในระดับ application server

แฟลตฟอร์ม Ruby on Rails, Java EE, ASP.NET, PHP, ColdFusion, Perl, Python

Page 15: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

การใช้งานส าหรับการพัฒนาเว็บ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

15

Back-end database หรือ data store ประกอบด้วย Data sets

Database management system software

การบริหารจัดการและให้เข้าถึงข้อมูล

Page 16: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

CodeIgniter Web Framework

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

16

CodeIgniter Framework พัฒนาขึ้นด้วยภาษา PHP

เป็นเครื่องมือส าหรับช่วยพัฒนาเว็บไซต์และเว็บแอปพลิเคชัน โครงสร้างการพัฒนาโปรแกรมอย่างเป็นระบบ

รวมค าสั่งต่างๆ ที่จ าเป็นต่อการพัฒนาเว็บไซต์ด้วย PHP

พัฒนาโดย Rick Ellis ลิขสิทธิ์เป็น Open Source สามารถดาวน์โหลด และใช้ได้ฟร!ี!

พัฒนาขึ้นตั้งแต่ปี 2006 และยังมีการพัฒนามาเรื่อยๆ จนถึงปัจจุบัน

Page 17: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 17 เพิ่มเติม: http://www.codeigniter.com/

Page 18: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Server Requirements

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

18

PHP version 5.6 or newer Database ส าหรับการพัฒนา web application programming

MySQL (5.1+) MySQLi MSSQL Postgres Oracle SQLite ODBC

Page 19: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Download และ Installation

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

19

Downloading CodeIgniter http://www.codeigniter.com/user_guide/installation/

downloads.html

Installation Instructions http://www.codeigniter.com/user_guide/installation/index.html

Page 20: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Application Flow Chart

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

20

ที่มา: http://www.codeigniter.com/user_guide/overview/appflow.html

Page 21: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

AngularJS

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

21

AngularJS extends HTML with new attributes.

AngularJS is perfect for Single Page Applications (SPAs).

AngularJS is easy to learn.

AngularJS is a JavaScript framework. It can be added to an HTML page with a <script> tag. AngularJS extends HTML attributes with Directives, and binds data to HTML with Expressions.

Page 22: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 22

https://angular.io/

Page 23: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 23

<!DOCTYPE html>

<html>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<body>

<div ng-app="">

<p>Name: <input type="text" ng-model="name"></p>

<p ng-bind="name"></p>

</div>

</body>

</html>

ที่มา: https://www.w3schools.com/angular/angular_intro.asp

Page 24: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

การพัฒนาแอปพลิเคชันบนเว็บแบบ Client/Server

เอกสารประกอบการสอน

24

รายวิชา เทคโนโลยีเว็บ (04-06-204)

Page 25: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

ระบบฐานข้อมูลและเว็บ

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

25

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

ฐานข้อมูลบนเว็บ และงานวิจัยที่เกี่ยวข้องกับเว็บและฐานข้อมูล

การจัดการเนื้อหาที่ผู้ใช้เป็นผู้สร้างเพ่ือแชร์ให้กับบุคคลอื่น Facebook

YouTube

Page 26: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

ฐานข้อมูลกับการท างานบนเว็บ

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

26

การร้องขอ เพื่อค้นคืนสารสนเทศและการจัดเก็บข้อมูลขั้นตอน ดังนี้ ผู้ใช้กรอกแบบฟอร์มจากหน้าเว็บ ข้อมูลที่ผู้ใช้ร้องขอส่งไปยัง server แปลงค าร้องขอเป็นการ query จากฐานข้อมูล ซึ่งผ่านไปยัง database

server ด้วย โปรแกรมหรือเครื่องมือ เรียกว่า Middleware ส่วนใหญ่ที่น ามาประยุกต์ใช้กับฐานข้อมูล

จะเขียนด้วยภาษาสคริปต์ CGI (Common Gateway Interface) ASP (Active Server Pages) JSP (Java Server Pages) PHP Server Side Script

Page 27: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

ฐานข้อมูลกับการท างานบนเว็บ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

27

ที่มา: http://www.cs.science.cmu.ac.th/

Page 28: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Apache เว็บเซิร์ฟเวอร์

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

28

Open Source Software ให้บริการเซิร์ฟเวอร์บนโพรโทคอล HTTP

สามารถท างานได้บนหลายระบบปฏิบัติการ และเป็นซอร์ฟแวร์ที่อยู่ภายใต้ลิขสิทธิ์ GNU

Apache มีที่มาจากกลุ่มคนที่ช่วยสร้างแพตช์ไฟล์ส าหรับโครงการ NCSA httpd 1.3 ซึ่งกลายมาเป็นที่มาของชื่อ A PAtCHy server

Module เพื่อให้ใช้งานและสามารถท างานร่วมกับภาษาอื่นได้ mod_perl, mod_python, mod_php หรือ mod_mysql

เพ่ิมเติม: http://httpd.apache.org/

Page 29: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Apache เว็บเซิร์ฟเวอร ์(ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

29

การยืนยันตัวบุคคล mod_auth, mod_access หรือ mod_digest

ความปลอดภัยในการสื่อสารผ่าน โพรโทคอล https mod_ssl

สามารถสร้างโฮสท์เสมือน (Virtual Host) ภายในเครื่องเดียวกันได ้mod_vhost

mod_rewrite module เป็นเครื่องมือที่จะช่วยให้ URLs ของเว็บอ่านง่ายขึ้น

Page 30: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Apache เว็บเซิร์ฟเวอร์ (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

30

Download และ Installation http://httpd.apache.org/download.cgi

Page 31: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Xampp เว็บเซิร์ฟเวอร์

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

31

XAMPP is the most popular PHP development environment

XAMPP is a completely free, easy to install Apache distribution containing: MariaDB, PHP, and Perl.

The XAMPP open source package has been set up to be incredibly easy to install and to use.

XAMPP with PHP 7.1.9 & 7.0.23 versions เพิ่มเติม: https://www.apachefriends.org/index.html

Page 32: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204) 32

เพิ่มเติม: https://www.apachefriends.org/index.html

https://www.apachefriends.org

Page 33: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

ภาษา PHP

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

33

PHP Hypertext Preprocessor ภาษาสคริปต์สร้าง Dynamic Web Page มีชุดค าสั่งคล้ายภาษา C++ หรือ Perl

แทรกอยู่ภายใต้โค้ดค าสั่ง HTML ผ่านแท็ก PHP <?php //php code ?>

ท างานบนฝั่ง Server, คล้ายกับ CGI, ASP.NET

สามารถท างานร่วมกับฐานข้อมูลได้หลายชนิด MySQL Oracle PostgreSQL MongoDB (NoSQL)

เพิ่มเติม: http://php.net/

Page 34: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Syntax

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

34

ภาษา PHP เป็นส่วนประกอบภายในเว็บเพจ

ค าสั่งจะปรากฏระหว่าง <?php ... ?>

<!DOCTYPE html>

<html>

<body>

<?php

//This is Comment

/* This is Comment */

//Code for execute

// echo, display text

echo "My first PHP script!";

?>

</body>

</html>

<?php

$a = 10;

?>

<h1>Hello World</h1>

<?=$a?>

<?php

phpinfo();

?>

Page 35: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Variable

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

35

<?php

$a = "String"; //var $a = "";

$b = 3.14;

$c = 5;

echo "My sample string is $a";

echo "My sample integer is".$b;

?>

is_string($a) – True/False

is_float($b) – True/False

is_integer($c) – True/False

Page 36: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Control Statement

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

36

<?php $i = 1, $j = 3; //Initial variable //If statement if($i > $j){ echo $i." is bigger than ".$j; }else if($j > $i){ echo $j." is bigger than ".$i; }else{ echo $j." is equal ".$i; } ?>

Page 37: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Control Statement (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

37

<?php $i = 1; //Initial variable //For loop for ($i = 0; $i < 10; $i++) { echo "Test -> ".$i."<br />"; } //While loop while ($i <= 10){ echo "Test -> ".$i."<br />"; } ?>

<?php $beer = "singha"; //Switch case switch($beer){ case "tuborg"; case "carlsberg"; case "heineken"; echo "good choice."; break; default; echo "Please make a new selection…"; break; } ?>

Page 38: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Functions

เอกสารประกอบ(การสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

38

การเรียกใช้ String Functions <?php

$str1 = 'abcdef';

$str2 = 'abcdef';

echo strlen($str1); // 6

echo strncmp($str1, $str2, 6); // 0

$arr1 = str_split($str1);

$arr2 = str_split($str1, 3);

print_r($arr1);

print_r($arr2);

?>

เพ่ิมเติม: http://th1.php.net/manual/en/funcref.php http://www.w3schools.com/php/php_ref_string.asp

Page 39: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP Functions (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

39

<?php

function familyName($fname, $year) {

echo "$fname Refsnes. Born in $year <br>";

}

familyName("Hege", "1975");

familyName("Stale", "1978");

function sum($x, $y) {

$z = $x + $y;

return $z;

}

echo "5 + 10 = " . sum(5, 10) . "<br>";

echo "7 + 13 = " . sum(7, 13) . "<br>";

?>

เพ่ิมเติม: http://www.w3schools.com/php/php_functions.asp

Page 40: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

Dealing with Forms

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

40

Simple HTML Forms (*.html) <form action="action.php" method="post">

<p>Your name: <input type="text" name="name" /></p>

<p>Your age: <input type="text" name="age" /></p>

<p><input type="submit" /></p>

</form>

Printing data from our form (*.php) Hi <?php echo htmlspecialchars($_POST['name']); ?>. You are <?php echo (int)$_POST['age']; ?> years old.

Hi Joe. You are 22 years old.

Page 41: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

MySQL

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

41

ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System) ใชภ้าษา SQL

เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป พัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน

โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรีและแบบที่ใช้ในเชงิธุรกิจ

MySQL พัฒนาโดยชาวสวีเดน 2 คนและชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius.

ปัจจุบันเป็นของบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.)

ที่มา: http://www.mysql.com/

Page 42: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP กับ MySQL

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

42

MySQL เป็นที่นิยมใช้กันมากส าหรับฐานข้อมูลส าหรับเว็บไซต ์

การจัดการฐานข้อมูล MySQL สามารถใช้โปรแกรมแบบ command-line เพื่อจัดการฐานข้อมูล (โดยใช้ค าสั่ง:

mysql และ mysqladmin)

โปรแกรมจัดการฐานข้อมูลแบบ GUI จากเว็บไซต์ของ MySQL

MySQL Administrator

MySQL Query Browser

PHPMyAdmin

Page 43: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เครื่องมือ phpMyAdmin

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

43

Page 44: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP กับ MySQL (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

44

ส่วนเชื่อมต่อกับภาษาการพัฒนาอื่น (database connector)

ส่วนติดต่อ (interface) เพื่อเชื่อมต่อกับภาษาในการพัฒนา

เพื่อใหเ้ข้าถึงฟังก์ชันการท างานกับฐานข้อมูล MySQL ได้ ODBC (Open Database Connector)

MyODBC อันเป็นไดรเวอร์เพื่อใช้ส าหรับการเชื่อมต่อในระบบ Windows

JDBC คลาสส่วนเชื่อมต่อส าหรับ Java เพื่อใช้ในการติดต่อกับ MySQL

API (Application Programming Interface) ต่างๆมีให้เลือกใช้มากมายในการที่เข้าถึง MySQL โดยไม่ขึ้นอยู่กับภาษาการพัฒนาใดภาษาหนึ่ง

Page 45: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP กับ MySQL (ต่อ)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

45

mysql_error() Fatal error: Call to undefined function mysql_connect()

in C:\AppServ\www\myphp\phpMySQLConnect.php on line xx

ยังไม่ได้ติดตั้ง extension ชื่อ php_mysql.dll ให้ด าเนินการดาวน์โหลดและติดตั้ง

น าไปวางไว้ในโฟเดอร์ extension ของ php เช่น C:\xammp\php5\ext

ปรับแก้ไฟล์ config ของ PHP ชื่อ php.ini (ค้นหา extension_dir)

extension_dir = "C:\xampp\php\ext"

extension=php_mysql.dll //เพิ่มบรรทัดนี้ในไฟล ์

Restart Apache หรือ Web Server

Page 46: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

การท างานร่วมกันระหว่าง Client และ Server

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

46

<html>

<head>

<title>PHP & MySQL</title>

</head>

<body>

<?php

//PHP Script

$objConnect =

mysqli_connect("hostname","user","password","databasename");

if($objConnect){

echo "Database Connected.";

}else{

echo "Database Connect Failed.";

}

mysqli_close($objConnect);

?>

</body>

</html>

Page 47: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

PHP กับ MySQL เพื่อดึงข้อมูลจากตาราง

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

47

<?php

$objConnect = mysqli_connect("hostname","user","password","Ch07_Salary")

or die("Error Connect to Database");

$strSQL = "SELECT * FROM Member";

//INSERT, UPDATE, and DELETE ?

$objQuery = mysqli_query($objConnect, $strSQL) or die ("Error Query

[".$strSQL."]");

while($objResult = mysqli_fetch_array($objQuery))

{

echo $objResult["MID"]."<br/>";

echo $objResult["MName"]."<br/>";

echo $objResult["MEmail"]."<br/>";

}

?>

Page 48: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

สรุป (Summary)

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

48

ศึกษาและเรียนรู้เกี่ยวกับ แนวคิดส าหรับสถาปัตยกรรมทรีเทียร์ และการน าเสนอในแต่ละ Tier

CodeIgniter Web Framework ส าหรับพัฒนาระบบแบบ MVC

ระบบฐานข้อมูลและการพัฒนาเว็บ Client และ Server

ติดตั้งและก าหนดค่า Apache เว็บเซิร์ฟเวอร์ Appserv เพื่อใช้งานเป็นเว็บเซิร์ฟเวอร์พื้นฐาน

ภาษา PHP และการใช้งานร่วมกับ HTML เบื้องต้น

ระบบฐานข้อมูล MySQL และการใช้งานเชื่อมต่อกับ PHP เบื้องต้น

Page 49: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

แบบฝึกปฏิบัต ิ

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

49

ก าหนดให้สร้าง HTML ฟอร์ม (product.html) เพื่อรับข้อมูลผลิตภัณฑ์ แล้วส่งไปประมวลผลยัง Server (insertProduct.php และ displayProduct.php) เพื่อจัดเก็บลงฐานข้อมูล ซึ่งโครงสร้างการท างานของโปรแกรมประกอบด้วย ดังนี้ product.html ส่วนรับข้อมูลผลิตภัณฑ ์ insertProduct.php ส่วนประมวลผลเพื่อจัดเก็บข้อมูลลงฐานข้อมูล displayProduct.php ส่วนแสดงผลข้อมูลจากฐานข้อมูล สร้างฐานข้อมูลด้วยเครื่องมือ PHPMyAdmin ชื่อ Ch07_Product

สร้างตารางชื่อ xxxx-x_product เพื่อจัดเก็บข้อมูลตามฟอร์มท่ีสร้างใน product.html

Page 50: บทที่ 7 สถาปัตยกรรมเทียร์ (Tier Architecture) และ Client ... filearchitecture) และระบบฐานข้อมูลและเว็บอย่างง่าย

เอกสารอ้างอิง

เอกสารประกอบการสอน รายวิชา เทคโนโลยีเว็บ (04-06-204)

50

โอภาส เอี่ยมสิริวงศ,์ วิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ, กรุงเทพฯ : ซีเอ็ดยูเคชั่น, 2557.

Client-server model (Online), Available at: http://en.wikipedia.org/wiki/Client-server_model

PHP: Hypertext Processor (Online), Available at: http://php.net/ The Apache HTTP Server Project (Online), Available at:

http://httpd.apache.org/ CodeIgniter Web Framework (Online), Available at:

http://www.codeigniter.com/ Multitier architecture (Online), Available at:

http://en.wikipedia.org/wiki/Multitier_architecture