Toggle main menu visibility
下載輕鬆架
套件下載
使用手冊
發問討論
網站地圖
:::
登入
登入
帳號
密碼
登入
:::
所有書籍
「用AI學PHP8」目錄
MarkDown
4-4 製作共同頁首檔 header.php
1. 學好程式的幾個建議
1-1 安裝PHP運作環境
1-2 安裝 VSCode 開發工具
1-3 安裝 Composer
1-4 關於PHP8
1-5 上課範例及需求
1-6 研習時需要的學習心態
1-7 建立專案目錄
2. 開始動手做界面
2-1 請AI幫我們做前端界面
2-2 請AI幫我們做滑動圖輪播區
2-3 將首頁和滑動圖整併在一起
2-4 請AI製作文章發布界面
3. 精修完整界面樣板
3-1 安裝Smarty樣板引擎
3-2 建立前、後台樣板檔並套用之
3-3 將主樣板檔拆分成小樣板
3-3-1 美化頁首樣板檔 header.tpl
3-3-2 優化導覽列 nav.tpl
3-3-3 統一主內容樣式 main.tpl
3-3-4 微調一下側邊欄
3-3-5 修改頁尾
4. 讓表單開始有作用
4-1 傳入變數讓程式知道現在要做什麼
4-2 根據不同動作自動載入相對應樣板
4-3 修改編輯表單使之可以送出資料
4-4 製作共同頁首檔 header.php
5. 將資料存到資料庫
5-1 建立資料庫連線
5-2 用AI來產生表單儲存功能
5-2-1 接收表單的值
5-2-2 用PDO寫入資料庫
5-2-3 建立縮圖並產生json資料
5-2-4 檔案上傳與接收
5-3 完成整個新增流程
6. 製作顯示單一文章的功能
6-1 將資料庫取出的值帶入樣板
6-2 讓滑動圖可以真的運作
6-3 套用真實圖片到輪播圖中
7. 製作首頁列表功能
7-1 取得指定的新聞資料數
7-2 完成首頁輪播圖及新聞列表
7-3 製作文章摘要
7-4 加入文章分頁功能
7-5 完成側邊欄的近期新聞
8. 開始加入管理功能
8-1 讓系統記住是否為管理員
8-2 製作登入、登出功能
8-3 加入管理工具功能
8-4 製作編輯功能
8-5 初步完成更新功能
8-6 完成圖片管理
8-7 加入刪除功能
9. 完成各種小細節
9-1 完成點閱數功能
9-2 用影片替換輪播圖
9-3 加入搜尋功能
9-4 點擊學校可以列出該校文章
9-5 產生內嵌語法
5-1 建立資料庫連線
用AI學PHP8 ======== ### 一、關於PHP的資料庫連線 1. 填完表單送出後,就準備寫入資料庫了。 2. 要寫入資料庫,必須先連上資料庫,PHP的MySQL連線方式有 `mysqli` 及 `pdo `兩種方式 1. `mysqli` 僅支援MySQL,但其語法和早期的 mysql 系列函數很像,所以,適合舊系統轉換,或者熟悉 mysql 系列函數者 2. `pdo` 則支援十幾種資料庫,因此,若有需要切換資料庫者,這是不二選擇,缺點是性能較 `mysqli `差一點,但安全性好。 ### 二、用AI來建立資料表 1. 表單初步設計好之後,也可以請AI來幫我們設計資料庫欄位 2. 請輸入以下提示詞給AI: ```markup 請依據以下表單,用MyISAM引擎產生一個名稱為 school_news 資料表,額外加入 media 欄位,用來存放多檔案的JSON資訊,還有加入點閱數欄位views。最後請輸出為 MySQL 語法,所有數字類型的欄位須為正整數,並以表單欄位中文名稱為該欄位註解。
新聞標題
新聞內容
相關連結
發布者
學校名稱
報導日期
上傳圖片
Youtube影片連結
上傳種類
上傳圖片 (僅限jpg及png)
Youtube影片網址
提交
``` 3. 回覆結果為: ```sql CREATE TABLE `school_news` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '編號', `news_title` VARCHAR(255) NOT NULL COMMENT '新聞標題', `news_content` TEXT NOT NULL COMMENT '新聞內容', `related_link` VARCHAR(255) COMMENT '相關連結', `publisher` VARCHAR(100) NOT NULL COMMENT '發布者', `school_name` VARCHAR(100) NOT NULL COMMENT '學校名稱', `report_date` DATE NOT NULL COMMENT '報導日期', `upload_type` ENUM('image', 'youtube') NOT NULL COMMENT '上傳種類', `youtube_url` VARCHAR(255) COMMENT 'Youtube影片網址', `media` JSON COMMENT '多檔案JSON資訊', `views` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '點閱數', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` 4. 可點擊控制台的Adminer,或直接輸入網址:「[http://localhost/us\_opt2/index.php?username=root](http://localhost/us_opt2/index.php?username=root)」亦可 ![](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/php009-1.png) 5. 建立` school `資料庫(務必選 `utf8mb4_general_ci`) ![](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/55/firefox_zF7OtXo5Uv.png) 6. 接著點擊「SQL命令」,將語法貼上,快速建立之![](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/55/firefox_e4CnTQmum2.png) 7. 最後得到一個資料表:
欄位
類型
註解
id
int unsigned
*自動遞增*
編號
news\_title
varchar(255)
新聞標題
news\_content
text
新聞內容
related\_link
varchar(255)
*NULL*
相關連結
publisher
varchar(100)
發布者
school\_name
varchar(100)
學校名稱
report\_date
date
報導日期
upload\_type
enum('image','youtube')
上傳種類
youtube\_url
varchar(255)
*NULL*
Youtube影片網址
media
json
*NULL*
多檔案JSON資訊
views
int unsigned
\[0\]
點閱數
8. 此外,我們也可以將語法存為 `mysql.sql` 來備用 ### 三、正確使用欄位類型 選用正確的欄位類型可以: - 節省空間 - 降低開發難度 - 避免錯誤 #### 一、數字
資料型態
資料範圍
tinyint(4)
-128至127 unsigned:0至255
smallint(6)
-32768至32767 unsigned:0至65535
mediumint(9)
-8388608至8388607 unsigned:0至16777215
int(11)
-2147683648至2147683647 unsigned:0至4294967295
bigint(20)
-9223372036854775808至9223372036854775807 unsigned:0至18446744073709551615
#### 二、浮點數
資料型態
範圍範例(以MySQL>3.23為例)
decimal\[(65\[,30\])\]
decimal(4,1)-999.9到9999.9 decimal(5,1)-9999.9到99999.9 decimal(6,1)-99999.9到999999.9 decimal(6,2)-9999.99到 99999.99 decimal(6,3)-999.999到9999.999
float\[(255,30)\]
float(4,1)-999.9到999.9 float(5,1)-9999.9到9999.9 float(6,1)-99999.9到99999.9 float(6,2)-9999.99到 9999.99 float(6,3)-999.999到999.999
double\[(255,30)\]
double(4,1)-999.9到999.9 double(5,1)-9999.9到9999.9 double(6,1)-99999.9到99999.9 double(6,2)-9999.99到 9999.99 double(6,3)-999.999到999.999
#### 三、日期時間
資料型態
範圍
date
1000-01-01至9999-12-31 西元年可用4或2個數字,使用2個數字時,70到99表示1970到1999; 如果是00到69就是2000到2069,有點容易搞錯,所以年份最好還是寫完整4位數比較沒困擾。
datetime
1000-01-01 00:00:00至9999-12-31 23:59:59
timestamp
1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC 其格式與datetime一樣,但儲存空間只需要一半。
time
-838:59:59至 838:59:59 存入「150:30:00」而言就是過了150小時又30分鐘之意。 亦可存入「-6:20:00」,意指「6個小時又20分鐘前」
year\[(4|2)\]
4位數字可以儲存的範圍從1901到2155; 2位數字的範圍從00到99,實際的西元年份是1970到2069,也就是說,當您存入00時,實際代表2000之意; 存入69代表2069;存入70代表1970;存入99代表1999。
#### 四、字串
資料型態
最大長度
實際儲存的空間
char\[(255)\]
255
指定的長度
varchar(65535)
65535
指定的長度加1或2bytes
tinytext
255
指定的長度加1byte
text
65535
指定的長度加2bytes
mediumtext
16772215
指定的長度加3bytes
longtext
4294967295
指定的長度加4bytes
#### 五、列表
資料型態
最大個數
儲存空間
enum(字串值\[,...\])
65535
1byte(25個以內); 2bytes(256到65535個)
set(字串值\[,...\])
64
1byte(8個以內); 2bytes(16個以內); 3bytes(24個以內); 4bytes(32個以內); 8bytes(64個以內)
#### 六、二進位
資料型態
最大長度
實際儲存的空間
bit\[(8|64)\]
64
bit的範圍為0到1 bit(8)的範圍為0到255 bit(64)的範圍為0到18446744073709551615
binary\[(255)\]
255
指定的長度
varbinary(65535)
65535
指定的長度加1或2bytes
tinyblob
255
指定的長度加1byte
blob
65535
指定的長度加2bytes
mediumblob
16772215
指定的長度加3bytes
longblob
4294967295
指定的長度加4bytes
:::
書籍目錄
展開
|
闔起
快速登入
所有討論區
Tad Search 資料查詢
懶人框架討論區
實戰PHP7+MySQL
XOOPS輕鬆架快速上手
校園網站輕鬆架一般討論區
Booking Helper 預約助手
es_stud_sign 班級報名
es charge 學生收費管理
E-Stud import 學生名冊管理
es_after_school 課後照顧報名
es_exam 學生作業繳交
ES_panel 校務行政面板
es_timetable 課表
ES_youtube 本校影音
info_whats 網路設備記錄
jill booking 場地預約
jill_notice 臨時公告
jill query 簡易查詢
jill receipt 領據填報
kw club 社團報名
kw device 設備借用管理系統
ntpc_oprnid 新北市 OpenID 登入
TinyD嵌入內容模組
ugm contact us 聯絡我們
ugm page 自訂頁面
ugm table 萬用表格
Yaoh Servicelearning 服務學習管理系統
dummy 自訂模組
soone_submit 投稿模組
Tad Adm 站長工具箱
Tad Assignment 作業上傳展示模組
Tad Blocks 進階區塊管理
Tad Book3 線上書籍
Tad Cal 行事曆
Tad Cbox 即時留言簿
Tad Discuss 討論區模組
Tad Embed 崁入模組
Tad Evaluation 評鑑檔案管理
Tad Form 萬用表單模組
Tad FAQ 常見問答
Tad Google 相簿
Tad Gallery 電子相簿
Tad Guide 安裝精靈
Tad Honor 榮譽榜
Tad idioms 背背成語
Tad Link 好站連結
Tad Login 快速登入
Tad Lunch3 午餐資訊
Tad Lunch2 營養午餐公告
Tad Meeting 會議系統
Tad Merage 線上合併套印
Tad News 本站消息
Tad Player 影音播放
Tad RSS 友站新聞
Tad Repair 維修通報
Tad SiteMap網站地圖
Tad Timeline 重要紀事
Tad Themes 佈景管理
Tad Tools 工具包
Tad TV 直播電視
Tad Uploader 檔案上傳模組
Tad Users 大量會員管理
Tad Web 多人網頁模組
MyTabs 我的頁籤
Random Quote 隨機小語
LogCounterX 網站流量統計
Yaoh light 多區塊多層次跑馬燈模組
校園網站輕鬆架功能建議區
佈景討論區
即時留言簿
計數器
今天:
昨天:
總計: