Jill 筆記
:::
:::
所有書籍
「PHP從入門到放棄實戰班」目錄
MarkDown
8-4 footer.php
1. 實戰之前
1-1 安裝開發環境
1-2 上課範例
2. HTML基礎
2-1 index.html
3. BootStrap響應式框架
3-1 格線系統
3-2 表格
3-3 導覽列
3-4 表單
4. PHP基本語法
4-1 註解
4-2 PHP資訊頁
4-3 PHP變數與陣列
4-4 各種訊息整理
5. 套用Smarty樣板
5-1 使用 Smarty
5-2 index.php
5-3 templates/index.tpl
5-4 php二維陣列
6. 資料庫規劃
6-1 MySQL常用資料類型一覽
6-2 讓PHP7連線到MySQL資料庫
7. PHP程式整併與樣板流程判斷
7-1 PHP條件判斷
7-2 PHP的變數過濾
7-3 練習自訂函數
7-4 templates/index.tpl
7-5 index.php
8. 製作表單並寫入資料到資料庫
8-1 index.php
8-2 post_form.tpl
8-2-1 post_form.tpl
8-3 templates/index.tpl
8-4 footer.php
9. 資料庫讀取
9-1 幾個常用的迴圈用法
9-2 讀出資料的安全性過濾並顯示
9-3 想想寫入還有什麼問題?
9-4 templates/post_form.tpl
9-5 index.php
9-6 templates/index.tpl
10. 編輯表單、刪除資料
10-1 顯示單筆資料
10-2 刪除事項
10-3 index.php
10-4 templates/post_form.tpl
10-5 templates/index.tpl
10-6 templates/show_one.tpl
11. 其他細節處理(補充)
11-1 小月曆
11-2 加入所見即所得編輯器
11-3 表單驗證
11-4 分頁功能
12. 練習
9-1 幾個常用的迴圈用法
PHP從入門到放棄實戰班 ============ ### 一、從資料庫中讀取資料 1. 讀取資料庫的內容,一律用 select 語法: ```sql SELECT `查詢的欄位` [FROM `資料表名稱` 附加的篩選條件] ``` 2. 其中篩選條件語法如下: ```markup [where 篩選條件] [group by `欄位名稱`][having group的篩選條件] [order by {unsigned_integer | `欄位名稱` | formula} [asc | desc] ,...] [limit [起點,] 筆數] ``` 3. 有順序關係,需注意。 ### 二、 從資料庫取得資料的方法 1. 寫SQL送去資料庫執行後,會傳回一個資源變數物件,如`$result` 2. 可以利用`$result`的各種取得資料方法,將資料一筆一筆取回。 3. 一筆資料以上的資料,請放至`while(){}`迴圈中取回。 4. 利用 `$result->fetch_assoc() `取出的資料陣列,會以資料表欄位名稱為陣列索引; 以`$result->fetch_row()` 取出的資料陣列,是以欄位順序為陣列索引,通常搭配`list()`使用 5. `$data=$result->fetch_assoc();` 得到的結果為: ```markup array(2) { [0]=> array(9) { ["sn"]=> string(1) "1" ["title"]=> string(15) "繳信用卡費" ["directions"]=> string(21) "全家繳信用卡費" ["end"]=> string(10) "2020-06-28" ["priority"]=> string(3) "中" ["assign"]=> string(3) "我" ["done"]=> string(1) "0" ["create_time"]=> string(19) "2020-06-18 15:38:48" ["update_time"]=> string(19) "2020-06-18 15:38:48" } } //即 $content[0]['sn']=1; $content[0]['title'] = "繳信用卡費"; $content[0]['directions'] = "全家繳信用卡費"; $content[0]['end'] = "2020-06-28"; $content[0]['priority'] = "中"; $content[0]['assign'] = "我"; $content[0]['done'] = "0"; $content[0]['create_time'] = "2020-06-18 15:38:48"; $content[0]['update_time'] = "2020-06-18 15:38:48"; ``` 6. `$data=$result->fetch_row();` 得到的結果為: ```php array(2) { [0]=> array(9) { [0]=> string(1) "1" [1]=> string(15) "繳信用卡費" [2]=> string(21) "全家繳信用卡費" [3]=> string(10) "2020-06-28" [4]=> string(3) "中" [5]=> string(3) "我" [6]=> string(1) "0" [7]=> string(19) "2020-06-18 15:38:48" [8]=> string(19) "2020-06-18 15:38:48" } } //即 $content[0][0]=1; $content[0][1] = "繳信用卡費"; $content[0][2] = "全家繳信用卡費"; $content[0][3] = "2020-06-28"; $content[0][4] = "中"; $content[0][5] = "我"; $content[0][6] = "0"; $content[0][7] = "2020-06-18 15:38:48"; $content[0][8] = "2020-06-18 15:38:48"; ``` - 搭配 `list($sn, $title, $directions,$end,$priority,$assign,$done, $create_time, $update_time)=$result->fetch_row();` 效果同 `$data=$result->fetch_assoc();` 7. 完整程式碼 ```php // 列出所有 function list_all() { global $db, $smarty, $content; $sql = "select * from `list` order by end"; if (!$result = $db->query($sql)) { die(error($db->error)); } $content = []; // 法一 while ($data = $result->fetch_assoc()) { $content[] = $data; } // 法二(樣板要改,不建議) while ($data = $result->fetch_row()) { $content[] = $data; } // 法三 $i = 0; while (list($sn, $title, $directions, $end, $priority, $assign, $done, $create_time, $update_time) = $result->fetch_row()) { $content[$i]['sn'] = $sn; $content[$i]['title'] = $title; $content[$i]['directions'] = $directions; $content[$i]['end'] = $end; $content[$i]['priority'] = $priority; $content[$i]['assign'] = $assign; $content[$i]['done'] = $done; $content[$i]['create_time'] = $create_time; $content[$i]['update_time'] = $update_time; $i++; } } ```