1、Introduction to PHP part3,Outline,動態網頁,現在的網頁不單單只是單向的顯示網頁給使用者端, 更可以和使用者作互動Ex: Google搜尋引擎因此需要製作一個使用者介面讓使用者可以輸入的動作使用HTML來設計一個輸入的介面表單(Form)Web server必須也要有個相對應的程式可以處理使用者輸入的資料, 並給予適當的回應,PHP的表單處理,網頁表單為網站的使用者介者,利用此介面將使用者輸入的資料傳送到伺服端的PHP程式進行處理,也可以說是PHP程式的輸入介面。,User input data,PHP程式,將輸入的資料傳送到伺服端的PHP程式處理。,執行結果回
2、傳給瀏覽程式顯示。,表單(Form),先定義出一個表單, 在表單裡面可以有很多輸入欄位文字欄位(Text), 密碼欄位(Password), 單一選擇鈕(Radio), 多重選擇鈕(Check Box), 文字區塊:可輸入大量文字(Text Area)會一次將一個表單裡面所有的輸入欄位送給web server將想要使用者輸入的欄位都置放在同一個表單裡,表單(Form),表單的傳送方式有GET和POSTGET:最大長為255 ,會於網址尾端加上?變名稱1=值&變名稱2=值。http:/ip/get.php?a=1&b=2POST:所傳訊息會顯示,資長無限制。(伺服器的php還是會設定一限制),選
3、擇要使用GET或POST方式傳送資料,當資料傳送到server後, 由哪個php程式來處理這些資料,處理表單資料的php,php所在的ip,PHP範例 (GET Method),問卷調查的簡單範例在server端有一個person.html, 會秀出以下的表單,姓名 是否為本系學生 大一 大二 大三 大四 男 女 ,表單的html原始碼,這個表單傳送的方式為GET, 表單傳送到server後, server會尋找是否有get.php, 若有, 則將表單資料丟給get.php處理(在此我們將person.html和get.php放在同個資料夾下),按下submit後, 將表單資料送到server
4、,使用GET傳送表單, 會將傳送的資料都顯示在瀏覽器的網址列上,送出的資料經過get.php的處理後回傳給使用者的結果,;if (strcmp(on,$check)=0)echo 就讀本系 $year year;elseecho 不是本系學生;?,get.php的原始碼,使用$_GET陣列來取得使用者傳來的資料,注意事項:在表單裡面form的欄位的name代表著送出的欄位名稱echo的字串會送回給clientstrcmp是用來比較兩個字串是不是相同的function, 相同會回傳0,PHP範例 (POST Method),留言板範例在server端有一個message.html, 會秀出以下的
5、介面,訪客留言訪客暱稱 留言 ,message.html的原始檔,注意事項使用POST method來傳送資料不會顯示在網址列上送出的資料為name=John message=Hello, ; echo $nickname ; echo $time ; echo ;echo $message ;?,message.php的原始碼,注意事項使用$_POST陣列來接收POST傳送過來的資料date(“Y-m-d H:i:s”)可得到目前的年月日時分秒若想要顯示表格或圖, echo 相對應的HTML語法,Outline,何謂資料庫,資料庫就是用來儲存一堆資料日常生活中處處可見資料庫的存在銀行記錄客戶
6、存款與提款金額航空公司管理班機航次和定位資料學校記錄學籍和選課成績但是資料庫不只是單純儲存在那裡, 還需要能夠不時地汰舊換新, 且能提供使用者有用的資訊需要資料庫管理系統來幫忙維護資料庫,資料庫與資料庫管理系統的關係,資料庫,資料庫管理系統,用來管理, 分析, 查詢,儲存資料的地方,使用者介面,關聯式資料庫,資料表和資料表也常有關連存在通常一張資料表都會盡量精簡, 避免資料的重複性, 以防資料被修改後的不一致性我們可透過資料表間的關聯性, 找到更多資訊,訂單資料表,客戶資料表,資料定義語言,定義一筆資料裡有哪些欄位, 每個欄位的資料型態, 簡稱DDL範例:學生表格定義,建立資料表間的關聯性 (
7、cont),使用主鍵(primary key)和外來鍵(foreigner key)來建立資料表間的關聯性主鍵(primary key): 找到表格裡某個欄位的值是獨一無二, 不會有重複的情況發生可想成是資料的身分證號碼可由多個欄位組成, 只要是獨一無二即可當有很多欄位可以成為主鍵,選擇一個合理且比較通用,主鍵,建立資料表間的關聯性,外來鍵(foreigner key): 用來連結某一個表格上和另一個表格之間的關係外來鍵通常是另一個表格的主鍵,訂單資料表,客戶資料表,客戶資料表的主鍵,訂單資料表的主鍵,外來鍵, 可和客戶資料表建立連結,MySQL,PHP本身支援多種資料庫系統的使用, 不過PH
8、P+MySQL是最常見的組合MySQL是命令視窗介面的資料庫系統, 操作起來比較不方便phpMyAdmin是一套以php3寫成,針對MySQL資料庫系統的Web管理界面。它可以很方便地以圖形化界面,來對MySQL資料庫內之資料做增刪的做動,更可以做資料庫本身的增刪管理,使用phpMyAdmin管理資料庫,http:/ip/home/mysqlIP為MySQL server的ip address, 由於我們都架在同一台電腦, 所以和PHP server的IP相同,管理資料庫的使用者,預設的管理者為root, 沒有密碼, 所以一開始就先設定root的密碼,可新增其他使用者來連結資料庫,更新連線資料
9、庫的帳號密碼,新增密碼後, 要重新連進phpMyAdmin介面必須要更改設定檔, 將密碼更新更改Program FilesEasyPHP5.3.0phpmyadmin下的config.inc.php將密碼填入$cfgServers$ipassword,建立資料庫,在資料庫和資料表等命名請用英文,建立資料表,建立資料表,建立資料表的欄位,如果是Primary key的欄位是文字, 請型態要選擇VarChar, 並且要給它長度的限制值,建立好的資料表,建立資料表的關聯性,在Designer部分, 可將資料表間建立關聯,填入資料,建立完資料表後, 將資料庫的內容填入各個資料表,資料填寫處,查詢範例(
10、SQL),和Access的查詢介面相像,選擇完欲查詢欄位後, 點選更新語法, 可得到SQL程式,PHP連結資料庫,假設有一個資料庫存著書籍的資料表(如下表所示), 如何寫一個php程式連結資料庫來讀取書籍資料表?PHP和MySQL相關的函式庫,轉換成HTML格式,存取書籍資料表的範例程式,範例: 網路書店,在server端有一個bookstore.html的網頁, 可用來查詢自己的訂單,若輸入Peh, 則得到的結果如下,處理資料庫的php原始碼,資料庫部分,今日練習,預設披薩店裡的庫存量是每種披薩各10個計算出客戶點的披薩總共要多少錢 (基本題)建立披薩的資料庫, 如果已經沒有足夠的披薩, 必須跟客戶說材料不足, 無法供應 (50% bonus),