網站程式設計-PHP
1. bootstrap(上) 1-1 bootstrap 介紹 1-2 網頁組成 1-3 導覽列 1-4 backstretch jquery plugin 1-5 上課軟體 1-6 FILEZILLA檔案傳輸軟體 2. Bootstrap(下) 2-1 HTML 語法 2-2 CSS 樣式表 2-3 課後練習 2-4 nav.html 3. PHP開發環境 3-1 sublime text操作技巧 3-2 index.php 3-3 Uniform Server設定 4. PHP簡介與語法 4-1 課後練習(4) 5. PHP邏輯判斷 5-1 if else ifelse 邏輯判斷語句 範例 5-2 foreach 範例 5-3 課後練習(5) 6. MYSQL 6-1-1 MySQL管理工具 6-2-2 建立資料庫 6-2-3 上傳管理工具 6-2-4 登入MySql 6-2-5 修改資料庫預設編碼 6-2-6 新增資料表 6-3 讓PHP連上MySQL 6-3-1 sqlConfig.php 6-3-2 mysql 與 mysqli 撈資料的差異 6-4 常和select一起用的PHP的函數 6-5 課後練習 6-6 課後 練習參考 7. 規劃商品展示資料結構 7-1-1 首頁草稿 7-1-2 商品展示草稿 7-1-3 關於我們草稿 7-1-4 聯絡我們草稿 7-2-5 ugm_kind 7-2-6 ugm_prod 7-2-7 ugm_contact 7-2-8 ugm_system 7-2-9 ugm_files 7-3 假圖 8. 導入PHP樣板引擎 8-1 smarty 樣板引擎 8-2 smarty 空白架構 8-3 config.php 8-4 smarty.php 8-5 nav.php 8-6 theme.html 8-7 Smarty 保留變數 9. 製做「登入後台」畫面 9-1 修改config.php 讓遠端與本機同時使用 9-1-1 空白php的架構 9-2-2 $_SESSION 9-3 表單 9-4 實做 10. 資訊通知中心 10-1 實做 11. 選單管理(上) 11-1 adminer.php 建立資料表 11-2 nav.php 11-3 後台程式框架 11-4 表單 11-4-1 表單架構 11-4-2 Bootstrap 元件架構 11-5 新增記錄 11-6 顯示單筆 12. 選單管理(下) 12-1 列表 12-2 編輯表單 12-3 更新記錄 12-4 刪除記錄 12-5 mysqli 12-6 微調 13. 整理成框架 13-1 套用至前台nav.php 13-2 整理後台nav_m.php 過程 13-3 nav_m.php 完成 13-4 選單的樣板 14. 輪播圖管理(上) 14-1 slider.php 14-2 修改樣板 14-3 增加後台選單 14-4 自動更新 15. 輪播圖管理(下) 15-1 檔案上傳 15-2 樣板增加「上傳表單」 16. 套用至前台輪播圖 17. 商品類別、商品管理 17-1 kind.php 17-2 增加商品資料表 18. 商品管理後台 18-1 op_list 樣板 18-2 op_list()函數 18-3 op_form 樣板 18-4 op_form()函數 18-5 op_insert()函數 18-6 op_show樣板 18-7 op_show()函數 18-8 op_update()函數 18-9 op_delete()函數 18-10 get_block_prod()函數 18-11 前台 index.php 樣板 19. 附註 19-1 日期套件 19-2 ckeditor 網頁編輯器 19-3 表單驗證 19-4 拖曳排序 19-5 分頁 19-6 function.php 19-7 Superslides 輪播 19-8 Google map 20. 線上補充 20-1 GOOGLEMAPS API
連線
#PHP 5.2.9以後
$mysqli = new mysqli($db_host, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
die('無法連上資料庫 (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
#設定資料庫語系
$mysqli->set_charset("utf8");
close連線
$mysqli->close();
執行SQL指令
$mysqli->query("insert into,update delete") //查詢
$mysqli->affected_row //傳回更改筆數
$mysqli->insert_id //傳回insert 指令所產生之流水號
select後回傳一個mysqli_result物件
$result->num_rows //查詢結果的資料筆數
$result->field_count //欄位數量
$mysqli->errno $mysqli->error //取得select時錯誤訊息
select結果讀取
$row=$result->fetch_row(); //陣列形態,可用$row[$n]存取
$row=$result->fetch_array(); //關聯陣列,用$row[$n]或$row[$colname]存取
//,名稱區分大小寫
$row=$result->fetch_assoc(); //關聯陣列,只能用$row[$colname]存取
$row=$result->fetch_abject(); //以物件方式存取,$row->colname
##每次呼叫都會傳回下一筆,直到最後傳回FALSE
$result->data_seek($row_number)跳到指定欄位
資料寫入過濾
#資料過濾
#http://php.net/manual/en/mysqli.real-escape-string.php
$_POST['title'] = $mysqli->real_escape_string($_POST['title']);//字串
$_POST['target'] = intval($_POST['target']);//數字
資料顯示過濾
#過濾撈出資料
$DBV['sn'] = intval($DBV['sn']);
//http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
$DBV['title'] = htmlspecialchars($DBV['title'], ENT_QUOTES); // 轉換雙引號和單引號
檢查資料表是否存在
########################################
# 檢查資料表是否存在
########################################
function chk_isTable($tbl_name="")
{
global $mysqli;
if(!$tbl_name)return;
$sql = "SHOW TABLES LIKE '{$tbl_name}'";
//die($sql);
$result = $mysqli->query($sql) or die(printf("Error: %s <br>".$sql, $mysqli->sqlstate));
if ($result->num_rows)return true; //欄位存在
return false;//欄位不存在
}
檢查欄位是否存在
########################################
# 檢查某欄位是否存在
########################################
function chk_isColumn($col_name="",$tbl_name="")
{
global $mysqli;
if(!$col_name and $tbl_name)return;
//SHOW COLUMNS FROM `show_kind` LIKE 'sn1'
$sql = "SHOW COLUMNS FROM `{$tbl_name}` LIKE '{$col_name}'";
$result = $mysqli->query($sql) or die(printf("Error: %s <br>".$sql, $mysqli->sqlstate));
if ($result->num_rows)return true; //欄位存在
return false;//欄位不存在
}