CG 數位學習網 > PHP 教學



商品型錄系統,讓網站管理者可以輕鬆完成商品的上架或修改內容,為了讓網站能處理大量的商品與訂單,系統的設計應該儘量人性化並且簡單易用。網站的前端設計也應該符合訪客的網路購物習慣,可透過觀察各大購物網站的設計來學習製作。

網站上的商品數量較多時,透過分類的設計可以讓訪客快速找到需要商品,商品分類為多層次的架構,在主分類之下可再建立次分類,商品分類的層次與數量不限。商品分類與商品項目可以設定排列的順序,並且需要提供商品搜尋的功能。

商品型錄系統可以整合稍後介紹的購物車系統。

 

網頁規劃

商品型錄系統比前面的範例提供了更多的功能,因此前端網頁與後端管理頁面約有 10 個網頁。

 

首頁 index.php

原本的網站首頁,我們在首頁左方新增「商品分類區塊」,並在中間新增「促銷商品區塊」。

 

商品分類頁 catalog.php

顯示商品分類的網頁,訪客點選首頁的商品分類時,將連結到 catalog.php 商品分類頁。

 

商品頁面 product.php

顯示商品圖片與詳細資料的網頁。

 

後台管理頁面

新增商品分類頁面 catalog_add.php
管理商品分類頁面 catalog_list.php
修改商品分類頁面 catalog_modify.php
刪除商品分類頁面 catalog_del.php

新增商品頁面 product_add.php
管理商品頁面 product_list.php
修改商品頁面 product_modify.php
刪除商品頁面 product_del.php

 

建立商品分類資料表

Catalog_ID 商品分類編號( SMALLINT ∕ auto_increment ∕ 主鍵 )
Catalog_Name 商品分類名稱( VARCHAR )
SupCatalog 所屬分類編號( TINYINT )
Display_Order 排列順序( TINYINT )
Catalog_Display 是否顯示此分類( TINYINT / 1 表示顯示此分類、0 表示隱藏此分類)

網站的經營者可以調整商品分類的排列順序,熱門的商品可以放在明顯的位置。Catalog_Display 欄位提供隱藏商品分類的功能,商品缺貨時可以暫時將該類商品隱藏,稍後只要進行設定即可重新上架,不必重新建立商品分類。

提示:商品編號欄位使用 SMALLINT 型態,因此商品分類的數量上限是 65,535 項,若商品數量可能超過的話,請改用範圍更大的數值欄位。

 

建立商品資料表

Product_ID 商品編號( SMALLINT ∕ auto_increment ∕ 主鍵 )
Product_Name 商品名稱 ( VARCHAR )
Catalog_ID 所屬分類編號
Price_Original 建議售價
Price_Sale 本站優惠價
Product_Info 商品介紹
Display_Order_Catalog 排列順序(分類頁)
Display_Order_Homepage 排列順序(首頁)
Product_Thumb 商品縮圖
Product_Image 商品圖片
Product_Promo 促銷商品
Product_Display 是否顯示此商品( TINYINT / 1 表示顯示商品、0 表示隱藏商品)

提示:在首頁與商品分類頁可分別設定排列順序,因此需有 2 個欄位。

此外,商品價格的欄位若是型態選擇 SMALLINT 屬性選擇 UNSIGNED,則商品價格最高可輸入 65,535 元,若是銷售不動產、汽機車類商品,可能就不適用了,請改用範圍更大的數值欄位!

因為是練習的範例,商品資料表的設計稍微的簡化過,一般的購物網站可能會再包含商品條碼、庫存數量,或是更詳細的商品說明欄位。此外,後端管理網頁只限網站管理者可以使用,因此必須加上「限制存取頁面」,否則訪客輸入管理網頁的位址也能修改網站的內容,會造成管理上的困擾,限制存取頁面的操作請參閱前面的網站會員系統教學。

先製作後端管理網頁,資料表目前還是空的,沒有任何的商品分類或商品。

 

製作新增商品分類頁面

首先製作新增商品分類的管理頁面( catalog_add.php ),使用記錄插入表單精靈。

所屬分類的下拉選單必須顯示全部的商品分類,因此需要建立查詢商品分類的資料集。

名稱:rs_catalogs
連線:conn_database
表格: tb_catalogs
欄:CatalogID、CatalogName
篩選器:無
排序:暫不設定

選擇「所屬分類」選單,點選屬性列的「動態」按鈕,在對話框設定:
靜態選項:
值 = 0 ,標籤 = 此商品分類放在首頁
資料集選項: rs_catalogs
值: CatalogID
標籤: CatalogName
選取的值等於:空白(此項在更新記錄時需設定)

 

製作修改商品分類頁面

 

製作刪除商品分類頁面

 

製作新增商品頁面 product_add.php

 

新增商品的頁面,是一個插入記錄的表單:

商品名稱: 文字欄位
所屬分類: 下拉選單
建議售價: 文字欄位
本站售價: 文字欄位
商品縮圖: 文字欄位
商品圖片: 文字欄位
商品介紹: 文字欄位(文字區域)
排列順序: 文字欄位
是否上架: 選項按鈕( 1 表示上架商品、0 表示下架商品)
促銷商品: 選項按鈕( 1 表示首頁促銷商品、0 表示一般商品)

新增商品時,若可以同時上傳「商品縮圖」與「商品圖片」是比較方便的,不過後端必須搭配上傳檔案的程式,Dreamweaver 並沒有提供,因此先使用文字欄位,以便待會測試功能時直接輸入檔案名稱,而稍後會再介紹製作上傳商品圖片的功能。

上傳檔案的功能除了自行撰寫 PHP 程式外,也可以安裝 Dreamweaver 的擴充程式。

所屬分類的下拉選單,必須列出已建立的商品分類,因此先建立查詢商品分類的資料集:

資料集名稱 rs_catalogs
連線 conn_database
表格 tb_catalogs
欄 CatalogID, CatalogName (只需要查詢商品分類編號與商品分類名稱)
篩選 無(下拉選單會列出所有的分類,因此不設定篩選條件)
排序 CatalogID 遞減(最新的商品分類顯示在最上方的位置)

接著在「所屬分類」選單加入動態值,點選所屬分類選單後,再屬性列按「動態」按鈕,靜態選項請空白。

資料集選項 rs_catalogs
值 CatalogID
標籤 CatalogName
按確定
將檔案儲存後請到瀏覽器,檢視下拉選單是否能列出正確的商品分類。

插入記錄

新增插入記錄的伺服器行為,讓使用者可將商品資料寫入 tb_products 資料表。
送出值來源 form1
連線 conn_database
插入表格 tb_products
欄 (除了商品編號 ProductID 以外,其餘的欄位都必須對應)

插入後,請前往 product_list.php (插入後前往商品管理網頁)



~ CG 數位學習網版權所有 ~