PHP網頁設計範例教本

Download Report

Transcript PHP網頁設計範例教本

網際網路資料庫程式設計
網際網路資料庫程式設計
「網際網路資料庫程式設計」?
Web-Programming
動態網頁程式設計
網際網路資料庫程式設計
教學目標

本課程主要目的在於介紹動態網頁程式設
計的基本觀念及技術,並學習如何應用
PHP及MySQL資料庫來設計網際網路資料
庫應用系統,以培養學生網際網路資料庫
應用系統開發的能力。
網際網路資料庫程式設計
教學大綱










基本觀念及開發環境建立
HTML網頁設計入門
CSS及JavaScript介紹
PHP基本語法與設計基礎
PHP進階應用
資料庫概念與SQL語法介紹
MySQL資料庫管理與設計
PHP與MySQL整合應用
整合實例實作與說明
專題製作
網際網路資料庫程式設計
--HTML基礎
網際網路資料庫程式設計

HTML介紹

CSS介紹

JavaScript介紹
網際網路資料庫程式設計
--PHP基礎與開發環境的建立
網際網路資料庫程式設計
何謂動態網頁?
動態網頁 v.s. 靜態網頁
例子一(彰師大校長介紹)
例子二(彰師大首頁)
例子三(中時電子報)
例子四(博客來網路書店)
網際網路資料庫程式設計
動態網頁 v.s. 靜態網頁
靜態網頁例子
網際網路資料庫程式設計
動態網頁 v.s. 靜態網頁
動態網頁例子
網際網路資料庫程式設計
動態網頁
可與使用者產生互動
 動態產生HTML
 依時間、使用者不同而有不同的呈現方式
或內容
 大部分皆使用資料庫儲存資料內容

網際網路資料庫程式設計
Client/Server架構
「客戶端」(Client):使用者執行程式的電腦,
負責和伺服器溝通和存取伺服器的資料。
「伺服端」(Server):指的是提供服務的伺服
器,如Web Server、DB Server。
網際網路資料庫程式設計
Client/Server架構
提出要求
(Request)
網路通訊
Client端
個人電腦(PC)
回應結果
(Response)
Server端
遠方電腦
網際網路資料庫程式設計
傳統主從式架構(2-tier
Client/Server)
網際網路資料庫程式設計
傳統主從式架構(2-tier
Client/Server)

優點:
 豐富的操作介面
 開發環境

缺點:
 安裝
 作業系統差異
網際網路資料庫程式設計
Web-based架構(3-tier /N-tier)

三層式(3-tier)的分散架構為目前Web應用
程式最普遍使用的架構。
網際網路資料庫程式設計
Web-based架構(3-tier /N-tier)

優點:
 無須複雜的安裝(最小安裝),client端只需具備
瀏覽器即可使用。
 作業系統差異小

缺點:
 開發工具不夠成熟
 安全性需更為注意
網際網路資料庫程式設計
WWW的架構


Web Server主要存放客戶端請求的資料,最常見
的為「IIS」(Internet Information Services),
及Apache伺服器,
Client端主要使用瀏覽程式顯示伺服端的檔案資料,
如Internet Explorer、Netscape、Firefox…等。
網際網路資料庫程式設計
客戶端網頁技術-說明

客戶端網頁技術是指程式碼在使用者客戶
端瀏覽程式上執行,瀏覽程式本身即直譯
程式,只需瀏覽程式支援相關的直譯語言,
就可以執行這些客戶端網頁技術。
 JavaScript
 VBScript
 Java Applet
 ActiveX
網際網路資料庫程式設計
伺服端網頁技術-說明

伺服端網頁技術簡單的說是在Web伺服器
上執行的程式,而不是在使用者客戶端的
瀏覽程式執行,目前常用的伺服端技術有:
 CGI
 ASP(.NET)
 JSP

PHP
網際網路資料庫程式設計
伺服端網頁技術-PHP
PHP是「PHP: Hypertext Preprocessor」
的簡稱,它是一種通用、開放原始碼
(Open Source)的伺服端Script語言,可
以直接內嵌於HTML文件,特別適用在Web
網站的開發,主要是使用在Linux/Unix作業
系統的伺服端網頁技術,目前Windows平
台也一樣可以執行PHP,而且支援微軟的
IIS伺服器。
 …………………

網際網路資料庫程式設計
-- PHP的變數、資料型態和運算子
網際網路資料庫程式設計
3-1-1 建立PHP程式

PHP程式一般使用.php當副檔名,但PHP
程式並沒有固定的副檔名,需視Apache伺
服器AddType指令的設定。

PHP程式碼是直接內嵌在HTML標籤,如下
所示:
<? ……….?>
<?php …………?>
網際網路資料庫程式設計
3-1-1 建立PHP程式(例子1)
<html>
<head>
<title>例子1 </title>
</head>
<body>
<?
//直接在HTML中嵌入PHP Script
echo "<span>網際網路資料庫程式設計</span>";
?>
</body>
</html>
網際網路資料庫程式設計
3-1-1 建立PHP程式(例子2)
<html>
<head><title>例子2 </title></head>
<body>
<?
// 指定變數初值
$begin = 2;
$end = 6;
// 設定字型尺寸由小變大
for ($i = $begin; $i <= $end; $i = $i + 2)
{ ?>
<font size=" <? echo $i ?> ">
<p>歡迎使用PHP 5</p>
<?php
print "</font>";
} ?>
</body>
</html>
網際網路資料庫程式設計
3-1-2 PHP程式的執行過程-說明

PHP屬於一種伺服端網頁技術,PHP程式
不是直接在Client端的瀏覽程式執行,而是
在伺服端執行PHP程式,轉換成純HTML網
頁傳送到Client端,其執行的過程,如下圖
所示:
網際網路資料庫程式設計
程式碼撰寫習慣
在必要的地方加上註解
 程式碼編排要結構化
 變數名稱儘可能取有意義的名稱,如$user_name、
$user_id 而不是$a、$b
 重覆使用或獨立功能儘可能以函式的方式處理
……………
例子一
例子二

網際網路資料庫程式設計
課堂練習

請寫一PHP程式,計算1+2+3…+100的結
果,並將結果顯示在網頁上。
for loop語法:
for ($i=1;$i<=100;$i++) ……
網際網路資料庫程式設計
-- PHP的函數
網際網路資料庫程式設計
5-1 模組化程式設計的基礎


模組化是把一件大型的工作切割成無數小工作,
至於如何去切割工作,就屬於結構化分析的範疇,
我們最常使用的是由上而下設計方法,這也是傳
統程式設計最常用的程式設計方法。
由上而下設計方法是當我們面對問題時,先考慮
整個問題將它分解成數個大模組,再對於這每一
個大模組,一一分割成數個小模組,如此一直細
分,最後等這些細分的小問題被一一解決後,再
將它們組合起來,一層層的向上爬,完成整個程
式設計。
網際網路資料庫程式設計
5-2-1 建立函數-建立與呼叫

PHP函數內容是一個程式區塊,最簡單的函數是
一個沒有傳回值和參數的函數。例如:顯示網頁
標題文字的showHeader()函數,如下所示:
function showHeader() {
print "<h3>PHP的自訂函數</h3>";
echo "<hr>";
}

因為函數沒有參數和傳回值,所以在呼叫函數時,
只需使用函數名稱加上空的大括號即可,如下所
示:
showHeader();
網際網路資料庫程式設計
5-2-1 PHP函數的執行過程

PHP執行函數以Ch5-2-1.php為例,程式執行到第
20列呼叫showHeader()函數,此時的程式碼執行
順序就跳到函數的第6列,在執行完第10列後返
回函數呼叫點即第21列,如下圖所示:
網際網路資料庫程式設計
5-2-1 PHP函數的位置

雖然PHP 4之後版本的函數可以置於任何位置,
不過,當函數是位在條件敘述的程式區塊或函數
之中,如下所示:
if ( $doit ) {
function test() { echo "…….<br>"; }
}
function myFunc() {
function test() { echo "………<br>"; }
}
網際網路資料庫程式設計
5-2-2 函數的傳回值-建立與呼叫

在函數的程式區塊可以使用return關鍵字來傳回函數的執
行結果,如下所示:
function addOne2Ten() {
$total = 0;
for ($i = 1; $i <= 10; $i++) {
$total += $i;
}
return $total;
}

因為函數擁有傳回值,在呼叫時通常是使用指定
敘述,並且位在指定敘述的右邊呼叫,如下所示:
$total = addOne2Ten();
網際網路資料庫程式設計
5-2-3 擁有參數的函數-建立與呼
叫


函數可以傳入參數值,所以在呼叫時可以指定不
同的參數值來得到不同的執行結果。例如:建立
計算攝氏及華氏的溫度轉換函數,如下所示:
function convertTemperature($c) {
$f = (9.0 * $c) / 5.0 + 32.0;
return $f;
}
參數呼叫方式如下所示:
$f = convertTemperature(100);
網際網路資料庫程式設計
5-2-3 擁有多個參數的函數-建立與
呼叫

函數可以擁有多個參數,如下所示:
function computeArea($width,$height) {
$area = $width * $height;
return $area;
}

如果參數不只一個,在呼叫時需要使用「,」
符號分隔多個參數,如:
$result = computeArea(10,20);
網際網路資料庫程式設計
5-2-4 傳值或傳址呼叫函數-範例


PHP函數預設使用傳值呼叫,如下所示:
// 傳值函數
function byValue($c) {
………
}
函數如果使用傳址呼叫,在參數前需要使用「&」
取址運算子,如下所示:
// 傳址函數
function byRef(&$c) {
………
}
網際網路資料庫程式設計
5-3-1 PHP的變數範圍-種類

PHP的每一個變數只擁有一種「變數範圍」
(Variable Scope),PHP支援三種變數範
圍,其說明如下所示:
 區域變數(Local
Variables):在函數內指定
的變數,變數只能在函數內使用,函數的參數
也屬於區域變數。
 全域變數(Global Variables):整個PHP程式
的函數和其它程式碼都可以使用此變數。
 靜態變數(Static Variables):一種區域變數,
在執行完函數後,變數值並不會遺失。
 ………………
網際網路資料庫程式設計
-- 陣列、字串與正規運算式
網際網路資料庫程式設計
6-5-1 正規運算式的基礎-說明
「正規運算式」(Regular Expression)是
一個範本字串,用來進行字串的比對。在
正規運算式的範本字串中,每一個字元都
擁有特殊意義,屬於一種小型的字串比對
語言。
 正規運算式直譯程式或稱引擎能夠將定義
的正規運算式範本字串和字串變數進行比
較,引擎傳回布林值,true表示字串符合範
本字串的定義,false表示不符合。

網際網路資料庫程式設計
6-5-1 正規運算式的基礎-字元集

正規運算式的範本字串是使用英文字母、數字和
一些特殊字元組成。為了簡化範本字串,可以使
用「[」和「]」符號組合成一組字元集的範圍,每
一個字元集代表比對字串中的字元需要符合的條
件,如下表所示:
字元集
[abc]
[abc{]
[a-z]
[A-Z]
[0-9]
[a-zA-Z]
[^abc]
說明
包含英文字母 a、b 或 c
包含英文字母 a、b、c 或符號{
任何英文的小寫字母
任何英文的大寫字母
數字 0~9
任何大小寫的英文字母
除了 a、b 和 c 以外的任何字元,[^….]表示之外
網際網路資料庫程式設計
6-5-1 正規運算式的基礎-Escape
字元

在正規運算式的範本字串除了字元集外,
還可以包含Escape字元代表的特殊字元,
如下表所示:
Escape 字元
\n
\r
\t
說明
換行符號
Carriage Return 的 Enter 鍵
Tab 鍵
\.、\?、\/、\\、\[、\]、 在範本字串代表.、?、/、\、[、]、{、}、(、)、+、
\{、\}、\(、\)、\+、\*、
*和|特殊功能的字元
\|
\xHex
十六進位的 ASCII 碼
\xOct
八進位的 ASCII 碼
網際網路資料庫程式設計
6-5-1 正規運算式的基礎-比較字元
比較字元
^
$
.
|
?
*
+
{n}
{n,m}
{n,}
說明
比對字串的開始,即從第 1 個字元開始比對
比對字串的結束,即字串最後需符合範本字串
可以代表任何一個字元
或,可以是前後 2 個字元任一個
0或1次
0 或很多次
1 或很多次
出現 n 次
出現 n 到 m 次
至少出現 n 次
網際網路資料庫程式設計
6-5-1 正規運算式的基礎-範本字串的範例
範本字串
^The
book$
note
a?bc
a*bc
a(bc)*
(a | b)*c
a+bc
ab{3}c
ab{2,}c
ab{1,3}c
[a-zA-Z]{1,}
[0-9]{1,}
說明
字串需要是 The 字串開頭,例如:These
字串需要是 book 字串結尾,例如:a book
字串中擁有 note 子字串
擁有 0 或 1 個 a,之後是 bc,例如:abc、bc 字串
擁有 0 到多個 a,例如:bc、abc、aabc、aaabc 字串
在 a 之後有 0 到多個 bc 字串,例如:abc、abcbc、abcbcbc 字串
擁有 0 到多個 a 或 b,之後是 c,例如:bc、abc、aabc、aaabc 字
串
擁有 1 到多個 a,之後是 bc,例如:abc、aabc、aaabc 字串等
擁有 3 個 b,例如:abbbc 字串,不可以是 abbc 或 abc
至少擁有 2 個 b,例如:abbc、abbbc、abbbbc 等字串
擁有 1 到 3 個 b,例如:abc、abbc 和 abbbc 字串
至少 1 個英文字元的字串
至少 1 個數字字元的字串
網際網路資料庫程式設計
-- 物件導向程式設計
網際網路資料庫程式設計
第7章 物件導向程式設計
7-1 物件導向的基礎
 7-2 類別與物件
 7-3 類別的繼承
 7-4 抽象與常數類別
 7-5 PHP的介面
 7-6 多型的實作
 7-7 PHP的類別與物件函數

網際網路資料庫程式設計
7-1-1 物件的基本觀念-說明

「物件」(Object)是物件導向技術的關鍵,
以程式的角度來說,物件是資料與相關函
數結合在一起的組合體,如下圖所示:
網際網路資料庫程式設計
7-1-1 物件的基本觀念-特點



狀態(State):物件所有「屬性」(Attributes)
目前的狀態值,屬性是儲存物件狀態,可以簡單
的是布林值變數,也可能是另一個物件,例如:
車子的車型、排氣量、色彩和自排或手排等屬性。
行為(Behavior):行為是物件可見部分提供的
服務,可以作什麼事,例如:車子可以發動、停
車、加速和換擋等。
識別字(Identity):識別字是用來識別不同的物
件,每一個物件都擁有獨一無二的識別字,PHP
語言是使用物件處理(Object Handles)的指標
作為物件的識別字。
網際網路資料庫程式設計
7-1-2 物件導向程式語言-說明

一種程式語言之所以稱為「物件導向程式
語言」(Object-oriented Language),主
要是指程式語言支援三種特性:
封裝
繼承
多形
網際網路資料庫程式設計
7-1-2 物件導向程式語言-封裝
封裝(Encapsulation)
 封裝是將資料和處理資料的函數組合起來
建立成物件。在PHP定義物件是使用「類
別」(Class),它屬於一種抽象資料型態,
換句話說,就是替程式語言定義新的資料
型態。
網際網路資料庫程式設計
7-1-2 物件導向程式語言-繼承
繼承(Inheritance)
 繼承是物件的再利用,當定義好一個類別
後,其他類別就可以繼承這個類別的資料
和方法,新增或取代繼承物件的資料和方
法。
網際網路資料庫程式設計
7-1-2 物件導向程式語言-多形
多形(Polymorphism)
 多形屬於物件導向最複雜的特性,類別如
果需要處理各種不同的資料型態,此時並
不需要針對不同的資料型態建立各別的類
別,可以直接繼承基礎類別,繼承此類別
建立同名方法處理不同的資料型態,因為
方法的名稱相同,只是程式碼不同,也稱
為「同名異式」。
 ……………….
網際網路資料庫程式設計
-- PHP的例外與錯誤處理
網際網路資料庫程式設計
第8章 PHP的例外與錯誤處理
8-1 PHP的錯誤處理
 8-2 PHP 5的例外處理

網際網路資料庫程式設計
8-1 PHP的錯誤處理

PHP程式的錯誤(Errors)是指程式執行前
直譯過程的錯誤,或直譯後執行程式時產
生的錯誤,主要分為兩種,如下所示:
 環境錯誤(Environmental
Errors):環境錯
誤也稱為外部錯誤(External Errors),這是
指程式執行環境所導致的錯誤,並不是程式設
計的問題。例如:沒有權限無法寫入檔案,或
檔案不存在。
 程式錯誤(Programming Errors):程式錯
誤是程式中的臭蟲(Bugs),可能是語法錯誤、
語意錯誤或程式邏輯錯誤(Logical Errors)。
網際網路資料庫程式設計
8-1-1 PHP錯誤處理的基礎-說明
錯誤處理(Error Handling)是一種處理錯
誤的機制,可以處理直譯過程的語法和語
意錯誤,或執行時的環境錯誤和程式錯誤
中的邏輯錯誤。
 PHP在4.0版之前即提供內建的錯誤處理機
制,當錯誤產生時,可以顯示各種不同的
PHP錯誤訊息。

網際網路資料庫程式設計
8-1-1 PHP錯誤處理的基礎-範例

例如:執行Ch8-1-1.php程式,因為require
插入檔案不存在的環境錯誤,在執行時就
會顯示PHP錯誤訊息,如下圖所示:
網際網路資料庫程式設計
8-1-1 PHP錯誤處理的基礎-四種
錯誤等級




Parse Errors:剖析錯誤是指PHP程式碼的語法
和語意錯誤,這是執行前,直譯過程產生的錯誤。
Fatal Errors:致命錯誤是很嚴重的執行時錯誤,
它會導致PHP程式碼終止執行。
Warnings:警告錯誤是一種尚能補救且非致命的
執行時錯誤,PHP引擎會試圖繼續執行PHP程式
碼。
Notices:注意錯誤是一種小且非致命的錯誤,只
是用來提醒程式碼可能出現的錯誤。例如:沒有
初始變數值。
網際網路資料庫程式設計
-- PHP的狀態管理與表單處理
網際網路資料庫程式設計
第9章 PHP的狀態管理與表單處
理









9-1 PHP狀態管理的基礎
9-2 PHP的表單處理
9-3 文字與密碼方塊
9-4 文字區域
9-5 核取方塊
9-6 下拉式清單方塊
9-7 選擇鈕
9-8 隱藏欄位
9-9 表單欄位驗證
網際網路資料庫程式設計
--交談期追蹤的Session與Cookies處理
網際網路資料庫程式設計
第10章 交談期追蹤的Session與
Cookies處理
10-1 PHP的預定變數
 10-2 HTTP標頭處理
 10-3 輸出緩衝區處理
 10-4 Cookies的處理
 10-5 PHP的交談期追蹤
 10-6 Session的處理

網際網路資料庫程式設計
10-1-1 PHP的預定變數-超全域變數
超全域變數
$GLOBALS
說明
在 PHP 3 就已經存在,包含目前 PHP 程式所有全域變數,鍵值是
全域變數的名稱
$_SERVER Web 伺服器指定的變數,屬於目前 PHP 程式執行環境的相關變數,
詳見第 10-1-2 節的說明
$_GET
結合陣列儲存透過 HTTP GET 方法傳入 PHP 程式檔案的表單欄位
資料,鍵值是欄位名稱,例如:程式範例 Ch9-2-4.php
$_POST
結合陣列儲存透過 HTTP POST 方法傳入 PHP 程式檔案的表單欄位
資料,鍵值是欄位名稱,詳見第 9 章
$_COOKIE
結合陣列儲存透過 HTTP 傳遞的 Cookie 資料,詳見第 10-4 節
$_FILES
結合陣列儲存使用 HTTP POST 方法上傳檔案的相關資訊,詳見第
11 章的說明
$_ENV
結合陣列儲存 PHP 執行時或 CGI 的環境變數
$_REQUEST 結合陣列儲存$_GET、$_POST、$_COOKIE 和$_FILES 變數的內
容。請注意!從 PHP 4.3.0 版開始,$_FILES 變數已經不存在
$_REQUEST 變數
$_SESSION 結合陣列儲存目前 PHP 程式擁有的 Session 變數,詳見第 10-6 節
的說明
網際網路資料庫程式設計
10-1-2 伺服器系統資訊的內容變數名稱
變數名稱
GATEWAY_INTERFACE
PHP_SELF
DOCUMENT_ROOT
QUERY_STRING
REMOTE_ADDR
REMOTE_PORT
REQUEST_METHOD
SCRIPT_NAME
SCRIPT_FILENAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
說明
伺服端 CGI 版本
目前執行 PHP 程式的檔案名稱
目前執行 PHP 程式的根目錄
URL 參數的資料
客戶端的 IP 位址
客戶端與主機連線的埠號
HTTP 的請求方法為 GET、PUT 或 POST
目前執行的 PHP 程式所在的虛擬路徑
目前執行的 PHP 程式所在的實際路徑
伺服器的網域名稱或 IP 位址
HTTP 通訊協定的埠號
HTTP 通訊協定的版本
使用的伺服器軟體和版本
網際網路資料庫程式設計
10-1-2 伺服器系統資訊的內容使用
在PHP程式可以指定變數名稱的鍵值來取得指定
的系統資訊,如下所示:
$ip = $_SERVER["REMOTE_ADDR"];
$path = $_SERVER["SCRIPT_NAME"];
 程式碼的鍵值是變數名稱,以此例可以取得使用
者的IP位址和目前執行PHP程式的路徑。
 PHP程式可以使用foreach迴圈顯示伺服器的所有
變數值,如下所示:
foreach ($_SERVER as $key=>$value) {
echo "<tr><td>" . $key . "</td>";
echo "<td>" . $value . "</td></tr>";
}

網際網路資料庫程式設計
-- 伺服端檔案與電子郵件處理
網際網路資料庫程式設計
第11章 伺服端檔案與電子郵件處
理
11-1 檔案的操作
 11-2 檔案的讀取與寫入
 11-3 Upload檔案上傳
 11-4 Email寄送電子郵件

網際網路資料庫程式設計
11-2-1開啟檔案與關閉檔案-檔案模式
檔案模式
"r"
"r+"
"w"
"w+"
"a"
"a+"
"b"
說明
開啟唯讀檔案
開啟讀寫檔案,檔案指標位在檔頭,寫入的資料會覆寫存在的
檔案內容
開啟寫入檔案,清除目前檔案的所有內容,檔案指標指向檔頭,
如果檔案不存在,建立此檔案
開啟可讀且可寫的檔案,清除目前檔案的所有內容,檔案指標
指向檔頭,如果檔案不存在,建立此檔案
開啟寫入檔案,檔案指標指向檔尾,所以是在檔尾寫入資料,
如果檔案不存在,建立此檔案
開啟讀寫檔案,檔案指標指向檔尾,所以是在檔尾寫入資料,
如果檔案不存在,建立此檔案
開啟二進位檔案,例如:圖片檔案,不過並不可單獨使用需要
配合之前的檔案模式,例如:"wb"、"rb"
網際網路資料庫程式設計
-- MySQL資料庫系統的使用
網際網路資料庫程式設計
第12章 MySQL資料庫系統的使
用
12-1 網頁資料庫的基礎
 12-2 MySQL資料庫系統
 12-3 MySQL管理程式phpMyAdmin
 12-4 在MySQL建立資料庫
 12-5 在MySQL匯入與匯出資料庫

網際網路資料庫程式設計
12-1-1 資料庫系統-資料庫的組
成

資料庫主要的目的是儲存資料,資料是儲存在資
料庫的「資料表」(Tables),每一個資料表使
用「欄位」(Fields)分類成很多群組,每一個
群組是一筆「記錄」(Records),例如:通訊
錄資料表的記錄,如下表所示:
網際網路資料庫程式設計
12-1-1 資料庫系統-索引
換一個角度來看,我們使用資料庫儲存資
料的目的是為了快速排序和查詢,資料表
可以使用「索引」(Index)將資料系統化
的整理,以便在大量資料中快速找到所需
的資料或進行排序。
 例如:在【通訊錄】資料表中選擇【編號】
欄位建立主索引,或稱為「主鍵」
(Primary Key),如此透過編號就可以加
速資料表記錄的搜尋和排序。

網際網路資料庫程式設計
12-1-2 PHP與資料庫

PHP提供眾多函數可以配合不同的資料庫
系統建立網頁資料庫,換句話說,PHP程
式如同檔案讀寫一般,可以直接在伺服端
存取資料庫的記錄資料,其架構如下圖所
示:
網際網路資料庫程式設計
-- PHP 5與MySQL建立網頁資料庫
網際網路資料庫程式設計
第13章 PHP 5與MySQL建立網頁資
料庫
13-1 PHP與MySQL的基礎
 13-2 開啟與關閉資料庫連結
 13-3 執行資料表查詢
 13-4 取得資料表和欄位資訊
 13-5 取得資料表的記錄資料
 13-6 使用表格分頁顯示記錄資料
 13-7 物件導向介面的資料庫存取

網際網路資料庫程式設計
-- SQL語言處理資料庫
網際網路資料庫程式設計
第14章 SQL語言處理資料庫
14-1 SQL語言的基礎
 14-2 SQL語言的資料庫查詢
 14-3 SQL子查詢、合併查詢與聚合函數
 14-4 SQL語言的資料庫操作
 14-5 使用Prepared Statement執行SQL
指令

網際網路資料庫程式設計
14-1 SQL語言的基礎-說明


「SQL」(Structured Query Language)為
「ANSI」(American National Standards
Institute)標準的資料庫語言,SQL指令可以查詢
資料表的記錄資料或插入、刪除和更新資料表的
記錄,目前MySQL、Access、SQL Server、
Informix、Oracle和Sybase等主要關聯式資料庫
管理系統都支援ANSI的SQL語言。
早在1970年,E. F. Codd建立關聯性資料庫的觀
念,同時就提出一種構想的資料庫語言,它是一
種完整且通用的資料存取方式,雖然當時並沒有
真正建立語法,但這便是SQL的源起。
網際網路資料庫程式設計
14-1 SQL語言的基礎-種類



資料定義語言(Data Definition Language,
DDL):建立資料表、索引和視界(Views)等,
並且定義資料表的欄位。
資料操作語言(Data Manipulation Language,
DML):屬於資料表記錄查詢、插入、刪除和更
新指令。
資料控制語言(Data Control Language,
DCL):屬於資料庫安全設定和權限管理的相關
指令。
網際網路資料庫程式設計
-- PHP與XML
網際網路資料庫程式設計
第15章 PHP與XML
15-1 XML與PHP的基礎
 15-2 PHP與DOM
 15-3 PHP與XPath
 15-4 PHP與SAX
 15-5 使用XSLT輸出HTML文件
 15-6 SimpleXML

網際網路資料庫程式設計
15-1 XML與PHP的基礎-剖析器
種類


樹狀基礎的剖析器(Tree-based Parser):將
XML文件轉換成樹狀結構,剖析器需要分析完整
份XML文件後,才能建立樹狀結構,提供相關介
面物件來存取樹狀結構的節點,例如:第15-2節
的DOM(Document Object Model)。
事件基礎的剖析器(Event-based Parser):
XML文件的處理如同讀取文字檔案的過程,在讀
取內容時觸發一系列事件,應用程式提供函數處
理這些事件,以便存取XML內容,例如:第15-4
節的SAX(Simple API for XML)。
網際網路資料庫程式設計
-- MVC設計模式的Web應用程式
網際網路資料庫程式設計
第16章 MVC設計模式的Web應用
程式
16-1 Web應用程式的基礎
 16-2 MVC設計模式
 16-3 MVC的Web應用程式範例

網際網路資料庫程式設計
16-1 Web應用程式的基礎-圖例

Web應用程式是使用伺服端網頁技術:CGI、
ASP、JSP、ASP.NET或PHP,以HTTP通
訊協定進行通訊所建立的主從架構應用程
式,如下圖所示:
網際網路資料庫程式設計
16-2-1 MVC設計模式的基礎-圖
例

對應MVC設計模
式就是將應用程
式分成Model、
Controller和View
三種元件,如右
圖所示:
網際網路資料庫程式設計
16-2-1 MVC設計模式的基礎-Model
元件


在MVC的Model元件是實作商業邏輯(Business
Logic)的物件,商業邏輯是一種關於如何儲存應
用程式資料的邏輯,包含資料和其規則。事實上,
Model元件之所以命名為「模型」,是因為它是
一組模擬真實世界的物件集合。而且在系統之中,
Model元件是唯一可以存取持續性儲存媒體
(Persistent Storage)的元件。
以Web應用程式來說,Model元件負責Web應用
程式的資料存取和處理,即存取和處理儲存在資
料庫、文字檔案和XML檔案中的資料。
網際網路資料庫程式設計
16-2-1 MVC設計模式的基礎-View
元件


在MVC的View元件是實作展示邏輯
(Presentation Logic)的物件,以Web應用程式
來說,就是建立使用者在瀏覽程式看到的執行結
果,即HTTP回應訊息,我們可以使用HTML、
XML和XSLT來建立Web應用程式的執行結果。
在View元件使用Model物件的方法從儲存媒體取
得所需資料,通常是用資料庫來產生回應結果,
簡單的說,View元件可以透過Model元件,將資
料庫的資料轉換成有用的資訊呈現給使用者。
網際網路資料庫程式設計
16-2-1 MVC設計模式的基礎Controller元件
MVC的Controller元件是整個應用程式的中
心,連結View和Model元件來控制應用程式
的執行,以Web應用程式來說,Controller
元件是控制資料處理流程的控制者,負責
接收使用者的HTTP請求。
 簡單的說,Controller元件負責接收使用者
的請求,然後下達指令給Model和View元件,
依使用者的請求來執行所需的操作,並且
決定View元件的顯示結果。

網際網路資料庫程式設計
16-2-2 PHP與MVC設計模式-圖
例
網際網路資料庫程式設計
16-2-2 PHP與MVC設計模式兩種執行流程
Controller依請求決定是哪一個Veiw後,建
立Model物件即將流程轉移至View,View
物件使用Model物件的方法取得資料後,整
合輸出成回應的網頁內容。.
 Controller建立Model物件,然後依請求執
行Model物件的方法來更改狀態,通常是更
改資料庫中的資料,然後通知View更新回
應的網頁內容。

網際網路資料庫程式設計
16-3-1 MVC的Web應用程式架構圖例

在本節MVC的Web應用程式範例是一種單
一Model和多個Controllers和Views的MVC
應用程式架構,如下圖所示:
網際網路資料庫程式設計
16-3-1 MVC的Web應用程式架
構-程式檔案

MVC的Web應用程式「Ch16」資料夾的相
關檔案,如下表所示:
程式檔案
shop.sql
mvc.php
lib\Model.php
lib\DataAccess.php
lib\TableView.php
lib\TableControllers.php
lib\XMLView.php
lib\XMLControllers.php
lib\bookitem.xml
lib\bookitem.xslt
說明
匯入 MySQL 建立 shop 資料庫的 SQL 指令檔案
啟動 MVC 架構 Web 應用程式的 PHP 程式
Model 元件
查詢 MySQL 資料庫的 DAO 類別
名為 TableView 的 View 元件
控制 TableView 顯示的 Controller 元件
名為 XMLView 的 View 元件
控制 XMLView 顯示的 Controller 元件
單筆圖書資料的範本 XML 文件
顯示單筆圖書資料的 XSLT Script
網際網路資料庫程式設計
16-3-2 使用MVC的Web應用程式圖例
網際網路資料庫程式設計
-- PHP應用實例探討
網際網路資料庫程式設計
第17章 PHP應用實例探討
17-1 PHP應用實例探討
 17-2 圖片版的訪客計數
 17-3 訪客留言簿
 17-4 聊天室
 17-5 廣告郵件系統
 17-6 電子賀卡系統

網際網路資料庫程式設計
17-1 PHP應用實例探討-說明

在本章說明的PHP應用實例是整合本書之前的
PHP程式所建立的Web網站,或稱為Web應用程
式,在這些網站使用的PHP程式設計方法,如下
所示:
 HTML網頁表單和PHP表單處理程式的實作範
例。
 PHP文字檔案相關處理函數的應用(將檔案視
為資料庫)。
 Session變數分享PHP程式的資料。
 PHP的XML文件處理和XSLT轉換輸出HTML文
件。
 檔案上傳和Email電子郵件的寄送。
網際網路資料庫程式設計
17-1 PHP應用實例探討-資料夾

在書附光碟的「Ch17」資料夾下擁有5個子
資料夾,分別為本章各PHP應用實例的原
始程式碼和網頁檔案,如下表所示:
資料夾
counter
guestbook
chatroom
admail
postcard
說明
圖片版訪客計數
訪客留言簿
聊天室
廣告郵件系統
電子賀卡系統
網際網路資料庫程式設計
17-3 訪客留言簿

訪客留言簿是一種
HTML表單應用,
提供網友發表言論
的園地,留言簿依
序顯示訪客張貼的
訊息。如果想留言,
只需在表單輸入基
本資料和留言內容,
即可新增留言。
網際網路資料庫程式設計
17-3-1 訪客留言簿的架構-圖例

訪客留言簿的留言是儲存在文字檔案,文
字檔案扮演類似資料庫的角色,提供PHP
程式存取儲存的留言,其架構如下圖所示:
網際網路資料庫程式設計
17-6-2 使用電子賀卡系統寄送電子賀卡
網際網路資料庫程式設計
17-6-2 使用電子賀卡系統檢視電子賀卡
網際網路資料庫程式設計
-- 網頁資料庫實例探討
網際網路資料庫程式設計
第18章 網頁資料庫實例探討
18-1 PHP網頁資料庫實例說明
 18-2 網頁通訊錄
 18-3 使用者登入管理
 18-4 BBS電子佈告欄
 18-5 網路商店
 18-6 網路投票系統

網際網路資料庫程式設計
18-1 PHP網頁資料庫實例說明

在本章的PHP應用實例是一種網頁資料庫
實例,整合第13章和14章PHP與MySQL網
頁資料庫的程式設計方法,如下所示:
 網頁表單和表單處理程式的實作範例。
 SQL指令查詢與處理資料庫。
 PHP程式的MySQL資料庫存取。
 Cookies的新增、讀取和刪除。
 Session變數分享PHP程式的資料。
 Email電子郵件的寄送。
網際網路資料庫程式設計
18-5-1 網路商店的架構-圖例

網路商店使用books資料表儲存圖書產品資
料,網路商店的購物車是使用Cookies儲存
選購的商品資料,其架構如下圖所示:
網際網路資料庫程式設計
18-5-3 使用網路商店-選購商品
網際網路資料庫程式設計
18-6-1 網路投票系統的架構-圖
例

網路投票系統使用兩個資料表:poll儲存投
票主題和pollresults儲存投票結果,其架構
如下圖所示:
網際網路資料庫程式設計
-- Ajax介紹
網際網路資料庫程式設計
何謂Ajax?
AJAX 是 「Asynchronous JavaScript And
XML」 的簡寫,為一結合JavaScript及
XML的動態網頁開發技術,透過Ajax技術
可提高網頁的互動性(interactivity)、速
度(speed)及可用性(usability)。
 ………….

網際網路資料庫程式設計
-- FPDF介紹
網際網路資料庫程式設計
-- GD繪圖及JpGraph介紹
網際網路資料庫程式設計
-- PHP與資料庫整合