透過PHP程式,將表單資料寫入多個資料表說明

透過PHP程式,將表單資料寫入多個資料表說明
文∕趙英傑

本文旨在補充《碼上就會:Dreamweaver CS3 PHP、MySQL與AJAX》書籍,第十章「使用Spry AJAX呈現動態資料庫網頁」,說明書本範例原始檔中,addCD.php(新增CD專輯資料)網頁的運作方式。

書本第十章的CD專輯資料庫,由三個資料表構成(資料表結構請參閱10-3頁)。由於每張專輯裡的曲目數量不盡相同,所以要把專輯的基本資料(專輯名稱、藝人名稱、發行公司…等等)和曲目資料分開存放。

負責新增CD專輯資料的PHP程式檔名為addCD.php,其中包含動態新增與刪減曲目欄位的JavaScript程式碼(這部分程式的原理說明,請參閱書本10-5頁「建立可動態新增與刪除的欄位」一節),以及新增表單資料的PHP程式。

當專輯資料輸入完畢,按下addCD.php網頁上的「儲存」鈕後,PHP將把資料分別存入albumscd_songs資料表,如下圖所示:

把資料分別存入兩個資料表

albums與cd_songs資料表透過cd_id欄位將兩者「關聯」(或者說「銜接」)在一塊。

資料表的關聯關係

問題是,albums資料表的cd_id(專輯索引)欄位值,是由資料庫系統自動產生。我們如何在輸入資料階段,取得該cd_id索引值,並存入cd_songs資料表?很簡單,只要呼叫PHP的mysql_insert_id()函數,它就能傳回最近新增資料的索引編號了!

底下是addCD.php原始碼中,38到61行的運作流程,書本的原始碼裡面也有註解,請讀者自行參考。

PHP程式流程圖

設定一組相關表單文字欄位的名稱

補充說明一下網頁裡的多個「曲目」欄位的命名方式。在建立一般的表單文字欄位時,其名稱設定方式如下:

設定單一文字欄位的名稱

對於一組相關的多個文字欄位的命名方式,則和設定核取方塊(checkbox)以及選項按鈕(radio button)一樣,替一群欄位設定相同的名字,並且在每個名稱後面加上“[]”字元(請參閱書本3-9頁製作核取方塊」一節)。

設定一組多個文字欄位的名稱

延伸閱讀

One thought on “透過PHP程式,將表單資料寫入多個資料表說明

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *