Jill 筆記
:::
:::
所有書籍
「PHP從入門到放棄實戰班」目錄
MarkDown
6-2 讓PHP7連線到MySQL資料庫
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. 練習
7-1 PHP條件判斷
PHP從入門到放棄實戰班 ============ ### 一、 關於函數 1. 函數有兩種,一組是PHP內建函數,另一種是自訂的函數。 2. 一個函數通常都有其獨特的功能,可視為具特定功能的小零件,直接呼叫使用即可,如:`phpinfo()`,有些有傳回值,有些沒有;有些需要輸入參數,有些不用。 3. 完整函數手冊:
4. 函數基本結構:傳回值 函數名稱(參數1,參數2...); 5. 函數傳回值有:string(字串)、int(整數)、array(陣列)、object(物件)、bool(布林值)、void(無傳回值)、mixed(不一定)、new(建立物件) 6. 練習:顯示今日日期 (找手冊) ### 二、 自訂函數 1. 自訂函數的基本語法為: ```php function 函數名稱($參數1='預設值' , $參數2='預設值',...){ global $外面的變數1, $外面的變數2; //函數內容,任何有效的 PHP 程式碼,包括其它函數和class定義 ; return 傳回值; } ``` 2. 參數不見得要有,傳回值也不一定要有。 3. 超級全域變數可直接在函數中使用,外面的一般變數無法進到函數中,除非做成參數或是用 `global `宣告。當然,函數裡面的變數外面也無法取用,除非`return`出去。 - 常見超級全域變數 - 以「陣列」方式存在,超級全域變數可在任何地方被拿來使用(包括函數內)。 - $\_GET、$\_POST、$\_REQUEST:來自表單的變數。 - $\_SERVER:環境變數,$\_SERVER\['PHP\_SELF'\]取得目前網址。 - $\_COOKIE:給cookie用的全域變數,cookie是存在使用者電腦的一個小檔案 - $\_SESSION:給session的全域變數,session是存在伺服器中的一個小檔案 - $\_FILES:上傳檔案時會用到的超級全域變數。 - ```markup // 取得目前網址 $smarty->assign('action', $_SERVER['PHP_SELF']); ``` 4. 函數可放在檔案中任何地方,放在呼叫之前或之後都沒關係。使用時,呼叫函數名稱即可。 5. 建議建立一個function.php檔案,若同一個函數會被兩個以上的檔案呼叫時,即可把該函數放到此檔,以便讓其他檔案共用,例如可以把連線資料庫寫成函數試試。 - function.php ```php function link_db() { //實體化資料庫物件 $mysqli = new mysqli(_DB_LOCATION, _DB_ID, _DB_PASS, _DB_NAME); if ($mysqli->connect_error) { throw new Exception('無法連上資料庫:' . $mysqli->connect_error); } $mysqli->set_charset("utf8"); return $mysqli; } ``` - index.php ```php // 引入function.php require_once 'function.php'; ``` ### 三、 製作PHP頁首頁尾檔(整併PHP檔) 1. 可以製作header.php及footer.php,把每個檔案都會引入的東西放在裡面。 2. 可用`require_once()` 或` include_once()`引入。 3. header.php頁首檔 ```php "回首頁", 'post' => "發布待辦事項"]; $smarty->assign('navbar', $navbar); // 變數 $content = []; $op = ''; ``` 4. footer.php頁尾檔 ```php assign('title', _PAGE_TITLE); $smarty->assign('header', _PAGE_HEADER); $smarty->assign('op', $op); $smarty->assign('content', $content); // 輸出到樣板檔 $smarty->display('index.tpl'); ``` ### 四、 製作樣板頁首頁尾檔(整併樣板檔) 1. 可以製作header.tpl及footer.tpl,把每個樣板檔案都會引入的東西放在裡面。 2. 可用 `{include file="header.tpl"}` 引入。 - template/header.tpl ```markup
{$title}
``` - template/index.tpl ```markup {include file="header.tpl"} ``` ### 五、Smarty 中 if 的用法 1. 基本語法: ```markup {if 判斷條件} //條件為真執行 {elseif 判斷條件} //elseif 的條件為真執行 {else} //條件為假時執行 {/if} ``` 2. index.tpl ```markup {if $content}
描述
到期日
{foreach $content as $c}
{$c.directions}
{$c.end}
{/foreach}
{else}
新增待辦事項
{/if} ```