無論是入口網站、購物網站、社群網站,或是公司、學校、政府機關的網站,經常需要提供發佈最新消息的功能,例如公告最新活動或商品優惠訊息等。而在製作網頁最新消息的部份,我們在網站的首頁只顯示最新消息的標題,避免佔用首頁過多的版面。訪客必須點選最新消息的標題,才會出現完整的內容。此外,透過製作後端管理界面,方便管理者直接從瀏覽器新增、修改、刪除最新消息。
學習目標
1. 熟悉資料表新增、修改、刪除記錄的操作。
2. 瞭解建立資料集時,記錄的篩選與排序操作。
3. 設計主頁面 - 細節頁面 ( Master-Detail ) 架構。
最新消息資料儲存於 tb_news 資料表:
欄位名稱 |
資料型態 |
說明 |
newsID |
smallint |
最新消息編號(自動編號) |
newsSubtitle |
varchar (100) |
最新消息標題 |
newsContent |
text |
最新消息內容 |
newsDate |
AAA |
發佈日期 |
newsHits |
smallint |
點閱次數 |
displayOrder |
tinyint |
是否置頂(0 = 否∕1 = 是) |
最新消息網頁規劃
網頁 |
檔名 |
說明 |
網站首頁 |
index.php |
網站的首頁 |
最新消息內容 |
news.php |
顯示最新消息內容的頁面 |
新增最新消息 |
news_add.php |
新增最新消息的管理頁面 |
最新消息清單 |
news_list.php |
顯示全部最新消息的頁面 |
修改最新消息 |
news_modify.php |
修改最新消息的管理頁面 |
刪除最新消息 |
news_delete.php |
刪除最新消息的管理頁面 |
1. 建立資料庫 db_myweb
2. 目前的資料庫中沒有任何資料表,新增最新消息資料表,名稱輸入「tb_news」,欄位數「5」。
3. 接著為資料表設定欄位的屬性。
建立資料庫連線
開啟 index.php 網頁,若是開啟 HTML 網頁將無法建立資料庫連線,開啟任何 PHP 網頁,即可建立資料庫連線。
網站若只連結一個資料庫,例如最新消息、會員資料、網路投票的資料表都儲存在同一資料庫時,僅要設定一次資料庫連線即可。
開啟 資料庫 面板,
按下 [ 新增(+) > MySQL 連線 ] 開啟 MySQL 資料庫連線對話框
連線名稱 = conn_MySQL (連線名稱可自訂,但不可包含中文或空白字元)
MySQL 伺服器 = localhost (因為本機已安裝 MySQL 資料庫,若裝在別台主機可透過 IP 位址連線)
使用者名稱 = 輸入 MySQL 資料庫的使用者名稱,例如 root
密碼 = 輸入 MySQL 資料庫的使用者密碼,若未設定請空白。
資料庫 = "" 選擇連線的資料庫,請按下右側的「選取」按鈕,選取「db_myweb」資料庫。
按下「選取」按鈕。
MySQL 若未指定密碼,將會出現提示訊息。
按下「測試」按鈕,若出現「連線已成功設定」的訊息,即可關閉 MySQL 連線的對話框。
建立資料集
說得簡單一點,建立資料集的主要目的就是告訴這個 PHP 網頁,執行時從那一個「資料庫」的那一個「資料表」的那些「欄」取得資料,並可設定篩選與排序的條件。
開啟 繫結 面板,按下 [ 新增 (+) > 資料集 (查詢) ],設定資料集。
名稱 = rs_news
連線 = conn_MySQL(從下拉選單選取)
表格 = tb_news(從下拉選單選取)
欄 = 除了 newsContent 以外的欄位,因為首頁不需要顯示最新消息的內容。
篩選器 = 無
排序 = newsDate / 遞減(排序依日期遞減是為了讓最新的訊息出現在上方位置)
老師習慣在資料集名稱使用前置字串「rs_」,因為資料集是「RecordSet」。使用前置字串是為了方便區別,實際上不加也是可以的。
在首頁加上最新消息
為了製作首頁上的「最新消息」,新增一個 2 列 3 欄的表格,標題分別加上「日期」、「標題」、「點閱」。
開啟 繫結 面板,將資料集的 newsDate、newsTitle、newsHits 拖曳到表格標題下的空白儲存格。
由於是剛剛才建立的資料表,目前還沒有任何最新消息的內容,而且新增最新消息的網頁也還沒製做,請先使用 phpMyAdmin 手動新增 3 筆最新消息,順便學習新增記錄的操作步驟。例如:
最新消息系統測試中!
開啟瀏覽器檢視首頁,如果沒問題的話應該會顯示一筆最新消息,為什麼無法顯示其他的最新消息呢?因為必須設定「重複區域」,否則只會顯示第一筆資料。
請選取表格的第二列(第一列是標題),建議從標籤編輯區按下 <tr> 標籤來選取整列,可避免不小心選取錯誤的範圍喔!
開啟 伺服器行為 面板,按下 [ 新增 (+) > 重複區域 ] 開啟設定對話框。
預設是在一頁顯示 10 筆記錄,也就是在首頁會顯示 10 筆最新消息,按下「確定」按鈕,您可以看到網頁的重複區域左上方出現「重複」的標籤。
提示:您也可以選擇顯示所有記錄,但是最新消息的筆數增加後,將會佔用太多首頁的版面,過期的最新消息也會顯示出來,而且對於伺服器而言,查詢過多的資料可能對執行效能造成負面的影響,特別是設計訪客數較多的網站時,重複區域的顯示筆數應該謹慎設定。
修正亂碼的問題
若網頁出現亂碼,開啟 Connects \ conn_MySQL.php 資料庫連線設定檔,切換到程式碼檢視,在 PHP 程式碼的最未行輸入
mysql_query("SET NAMES utf8");
顯示資料集導覽狀態
許多網站的網頁上會顯示有多少筆最新消息,使用 Dreamweaver 製作這個功能非常簡單,您可以在「插入」面板切換到「資料」標籤,再按下「資料集導覽狀態」開啟對話框,選擇 rs_news 資料集後按下「確定」按鈕。
您可以稍微修改一下文字,因為預設的文字內容實在讓人很難理解是什麼意思。
前往細節頁面
首頁只顯示最新消息的標題,訪客需要點選後才能看到完整的內容,這是大部份網站採用的設計,這就是前面提到的「Master-Detail」網頁架構。
完整的最新消息其實是另一個網頁,無論有多少筆最新消息,訪客實際上連結的是同一個網頁,伺服器該如何判斷顯示那筆最新消息的內容呢?主要是透過網頁之間傳遞的參數 - URL 參數。
選取首頁最新消息的標題,透過 屬性 面板設定超連結,在「選取檔案」的對話框連結到 news.php 網頁。
按下「參數」按鈕並設定如下:
「名稱」欄位輸入「newsID」,「值」欄位按下閃電按鈕,從「動態資料」對話框選擇 rs_news 資料集下方的 newsID 後,按下「確定」按鈕。
回到「參數」對話框,可以看到「值」欄位已經填上 PHP 程式碼,再按下「確定」按鈕。
我們已經完成前往細節頁面的超連結設定,透過網頁瀏覽器測試一下網頁的功能吧!
製作管理最新消息的網頁
管理最新消息的頁面也會使用到前往細節頁面,開啟 news_admin.php 網頁進行編輯。
這個網頁目前沒有任何內容,因為需要列出全部的最新消息,從繫結面板執行 [ 新增 (+) > 資料集 (查詢) ] 。
製作新增最新消息的網頁
實際上這個網頁並不提供訪客瀏覽,而是讓網站管理者發佈最新消息,因此稍後再加上使用者驗證的功能。
隱藏欄位 newsDate 用於取得發佈最新消息的日期,選取後從屬性面板的「值」欄位輸入以下的 PHP 程式。
表單元件的名稱若與資料表的欄位名稱相同,Dreamweaver 將會自動對應。
製作修改最新消息的網頁
實際上修改最新消息的網頁可以從新增最新消息的網頁 news_add.php 修改,因為表單的項目幾乎是相同的,只是前者的功能是「插入記錄」,而後者是「更新記錄」。
製作刪除最新消息的網頁
透過 news_list.php 網頁傳遞的 URL 參數,判斷要刪除的最新消息是那一筆記錄。
|