透過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將把資料分別存入albums與cd_songs資料表,如下圖所示:
albums與cd_songs資料表透過cd_id欄位將兩者「關聯」(或者說「銜接」)在一塊。
問題是,albums資料表的cd_id(專輯索引)欄位值,是由資料庫系統自動產生。我們如何在輸入資料階段,取得該cd_id索引值,並存入cd_songs資料表?很簡單,只要呼叫PHP的mysql_insert_id()函數,它就能傳回最近新增資料的索引編號了!
底下是addCD.php原始碼中,38到61行的運作流程,書本的原始碼裡面也有註解,請讀者自行參考。
設定一組相關表單文字欄位的名稱
補充說明一下網頁裡的多個「曲目」欄位的命名方式。在建立一般的表單文字欄位時,其名稱設定方式如下:
對於一組相關的多個文字欄位的命名方式,則和設定核取方塊(checkbox)以及選項按鈕(radio button)一樣,替一群欄位設定相同的名字,並且在每個名稱後面加上“[]”字元(請參閱書本3-9頁「製作核取方塊」一節)。
延伸閱讀
我也來培養氣質….哈哈…好好笑喔