Ch13 存取MySQL資料庫 實作:會員管理系統

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
主讲:史治平 地址:四川电大计算机教研室 电话:
第 4 章 PHP 基本語法.
SQL的简单查询.
第5章 HTML 標籤介紹.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
岡山區103年第12次 登革熱聯繫會報會議 岡山區公所 103年12月30日 1.
第三讲 站点链接与表格布局.
——奧科特公開及內部培訓 系列課程(三)之十一
MVC Servlet与MVC设计模式.
MySQL資料庫安全管理.
幸福大讲堂 也谈老年朋友的 “老有所□” 爸妈在线专家宣讲团 ——老年朋友如何乐度后半生概述 主讲:钱锡安
经 络 学.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
Ch07 PHP程式基礎 網頁程式設計.
PHP 與MySQL 運作 建立與關閉資料連線 選擇資料庫 資料表查詢-利用SQL 指令
教師: 陳明瑤 電郵: 網際網路應用-網頁設計3 教師: 陳明瑤 電郵:
第四章 網頁表單與資料傳遞.
留言版 1.先Create一個留言板的table
Introduction to PHP part3
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 13 章 陣列應用.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
PHP +MySQL快速入門 Lesson 4.
XSS & SQL Injection理論 2014/7/29 許子謙.
PHP與SQL語法存取MySQL SQL
後端教學-MYSQL 講師:邱小楓(邱珈蓉)
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
課程名稱:資料庫系統 授課老師:李春雄 博士
第22章 PHP MySQL ODBC接口动态网页设计
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
Lesson 5 :基礎應用二(留言版) (2004/08/20).
第 10 章 PHP 存取 MySQL 資料庫.
实验 2:MS Access QBE Query使用
操作資料庫 教授:楊維邦 教授 助教:黃存賢 陳廷宣.
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
Android盤點系統 組別:第九組 組員:四資工三B 4980E046 宋佩鴻 四資工三B 4980E054 詹典易
勇闖鵲橋II:資料庫 靜宜大學資管系 楊子青
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
使用PHP來操作資料庫 教授:楊維邦 教授 助教:李政均、劉秋良.
PHP與SQL語法存取MySQL SQL
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
第20章 MySQL数据库.
武汉纺织大学传媒学院 cm.wtu.edu.cn
PHP5與MySQL4 入門學習指南 凱文瑞克 著 第 16 章 檔案處理.
PHP +MySQL快速入門 Lesson 3.
架站實做—AppServ
PHP编程基础与实例教程 PHP Fundamentals & Practices
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
Ch09 在網頁之間傳遞資訊 網頁程式設計.
第六章 迴圈與陣列.
第3章 PHP表达式.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
HTML 103 互動式網頁 助教:黃毓瑩.
第六類 資料庫備份與回復.
PHP與SQL語法存取MySQL SQL
XML備份MySQL資料庫 <html> <head>
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
Lesson 4 :基礎應用一(計數器) (2005/01/27).
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
表格 (Table).
課程名稱:資料庫系統 授課老師:李春雄 博士
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
分頁.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 12 章 迴圈指令.
Presentation transcript:

Ch13 存取MySQL資料庫 實作:會員管理系統 網頁程式設計

大綱 PHP與MySQL資料庫 建立與關閉資料連接 存取MySQL資料庫伺服器 執行SQL指令 取得欄位資訊 取得記錄內容 分頁瀏覽 2018/11/16

PHP與MySQL資料庫 PHP提供了數十個函式讓使用者存取MySQL資料庫: mysqli_affected_rows() mysqli_close() mysqli_connect() mysqli_data_seek() mysqli_connect_errno() mysqli_connect_error() mysqli_errno() mysqli_error() mysqli_fetch_array() mysqli_fetch_assoc() mysqli_fetch_field() mysqli_fetch_object() mysqli_fetch_row() mysqli_field_seek() mysqli_free_result() mysqli_get_client_info() mysqli_get_host_info() mysqli_get_proto_info() mysqli_get_server_info() mysqli_num_fields() mysqli_num_rows() mysqli_query() mysqli_select_db() 2018/11/16

建立資料連接 使用mysqli_connect() 函式建立資料連接,其語法如下: 例: mysqli_connect([string host [, string username [, string password [,string dbname]]]]) <?php $link = mysqli_connect("localhost", "root", "mypassword") or die("無法建立連接"); echo "成功建立連接"; ?> 2018/11/16

關閉資料連接 使用mysqli_close() 函式關閉資料連接,其語法如下: 例: mysqli_close([resource link_identifier]) <?php $link = mysqli_connect("localhost", "root", "mypassword") or die("無法建立連接"); echo "成功建立連接"; mysqli_close($link); ?> 2018/11/16

存取MySQL資料庫伺服器 取得MySQL用戶端函式庫的版本資訊 使用mysqli_get_client_info() 函式取得MySQL用戶端函式庫的版本資訊,其語法如下: 例: mysqli_get_client_info() <?php echo "MySQL 用戶端程式庫的版本: " . mysqli_get_client_info(); ?> 2018/11/16

取得MySQL主機的相關資訊 使用mysqli_get_host_info() 函式取得MySQL主機的相關資訊,其語法如下: 例如: mysqli_get_host_info([resource link_identifier]) <?php $link = mysqli_connect("localhost", "root", "mypassword"); echo '$link 連線主機為:' . mysql_get_host_info($link); mysql_close($link); ?> 2018/11/16

取得MySQL資料庫協定的版本資訊 使用mysqli_get_proto_info() 函式取得MySQL資料庫協定的版本資訊,其語法如下: 例如: mysqli_get_proto_info([resource link_identifier]) <?php $link = mysql_connect("localhost", "root", "mypassword"); echo '$link 資源變數的協定版本為: ' . mysqli_get_proto_info($link); mysql_close($link); ?> 2018/11/16

取得MySQL資料庫伺服器的版本資訊 使用mysqli_get_server_info() 函式取得MySQL資料庫伺服器的版本資訊,其語法如下: 例如: mysqli_get_server_info([resource link_identifier]) <?php $link = mysql_connect("localhost", "root", "mypassword"); mysql_close($link); ?> 2018/11/16

取得存取MySQL資料庫伺服器的錯誤訊息 下列函式取得在存取資料庫時,所產生的錯誤代碼與錯誤訊息: mysqli_connect_errno() mysqli_connect_error() mysqli_errno(resource link_identifier) mysqli_error(resource link_identifier) 例: <?php $link = @mysqli_connect("localhost", "root", "mypassword1") or die("無法建立連接: " . mysqli_connect_errno() . " " . mysqli_connect_error()); echo "成功建立連接"; mysqli_close($link); ?> 2018/11/16

範例1 <?php //讓php與MySQL連接 $link = mysqli_connect("localhost", "root", "1234") or die("無法建立連接" . mysqli_connect_error() . ":" . mysqli_connect_error() . "<br>"); echo "成功與MySQL建立連接<br>"; //用戶端版本 echo "MySQL 用戶端程式庫的版本: " . mysqli_get_client_info(). "<br>"; //主機相關資訊 echo '$link 連線主機為:' . mysqli_get_host_info($link) . "<br>"; //伺服器版本資訊 echo '$link 連線主機的資料庫版本為: ' . mysqli_get_server_info($link) . "<br>"; //關閉與MySQL連接 mysqli_close($link); ?> 2018/11/16

執行SQL指令 開啟資料庫:使用mysqli_select_db() 函式開啟資料庫,其語法如下: 例如: mysqli_select_db(resource link_identifier, string database_name) <?php $link = mysqli_connect("localhost", "root", "mypassword") or die("無法建立連接: " . mysqli_connect_error()); mysqli_select_db($link, "students") or die ("無法開啟 students 資料庫: " . mysqli_error($link)); mysqli_close($link); ?> 2018/11/16

執行SQL指令 開啟資料庫後,使用mysqli_query() 函式執行SQL指令,其語法如下: 例如: mysqli_query(resource link_identifier, string query) <?php $link = mysqli_connect("localhost", "root", "mypassword") or die("無法建立連接: " . mysqli_connect_error()); mysqli_select_db($link, "product") or die ("無法開啟 prodcut 資料庫: " . mysqli_error($link)); $sql = "SELECT * FROM price WHERE category = '主機板'"; $result = mysqli_query($link, $sql); mysqli_close($link); ?> 2018/11/16

取得執行SQL指令被影響的記錄數目或欄位數目 PHP提供下列三個函式,讓我們能夠得知在執行SQL指令後,有多少筆記錄或多少個欄位受到影響: mysqli_num_rows(resource result) mysqli_num_fields(resource result) mysqli_affected_rows([resource link_identifier]) <?php require_once("dbtools.inc.php"); $link = create_connection(); $sql = "SELECT * FROM price WHERE category = '主機板'"; $result = execute_sql($link, "product", $sql); echo "category = 「主機板」的記錄有 " . mysqli_num_rows($result) . " 筆"; echo ",包含 " . mysqli_num_fields($result) . " 個欄位。"; mysqli_close($link); ?> 2018/11/16

取得某一欄位資訊 使用mysqli_fetch_field_direct() 函式取得每一個欄位資訊,其語法如下: 舉例來說,假設要取得第2個欄位資訊,可以寫成如下: 假設要取得第2個欄位資訊並顯示其欄位名稱及資料型態,可以寫成如下: mysqli_fetch_field_direct(resource result, int field_offset) $meta = mysqli_fetch_field_direct($result, 1); $meta = mysqli_fetch_field_direct($result, 1); echo "欄位名稱:$meta->name"; echo "資料型態:$meta->type"; 2018/11/16

取得所有欄位資訊 使用mysqli_fetch_field() 函式取得所有欄位資訊,其語法如下: 例: mysqli_fetch_field(resource result) <?php require_once("dbtools.inc.php"); $link = create_connection(); $sql = "SELECT * FROM PRICE WHERE category = '主機板'"; $result = execute_sql($link, "product", $sql); echo "<table width='400' border='1'><tr align='center'>"; echo "<td>欄位名稱</td><td>資料型態</td><td>最大長度</td></tr>"; while ($meta = mysqli_fetch_field($result)) { echo "<tr>"; echo "<td>$meta->name</td>"; echo "<td>$meta->type</td>"; echo "<td>$meta->max_length</td>"; echo "</tr>"; } echo "</table>" ; mysqli_close($link); ?> 2018/11/16

移動欄位指標 mysqli_field_seek() 函式可以移動欄位指標,其語法如下: 例如: mysqli_field_seek(resource result, int field_offset) $seek_result = mysqli_field_seek($result, 4); $meta = mysqli_fetch_field($result); 2018/11/16

取得記錄內容 mysqli_fetch_row() 函式可以用來讀取一筆記錄,然後將記錄指標移到下一筆,若讀不到記錄,就傳回FALSE,其語法如下: 舉例來說,下面的程式碼表示要讀取五筆記錄,然後將讀取的記錄分別存放在陣列row1、row2、row3、row4、row5: 若要顯示第2筆記錄的第3個欄位,可以寫成如下: mysqli_fetch_row(resource result) $row1 = mysqli_fetch_row($result); $row2 = mysqli_fetch_row($result); $row3 = mysqli_fetch_row($result); $row4 = mysqli_fetch_row($result); $row5 = mysqli_fetch_row($result); echo $row2[2]; 2018/11/16

取得記錄內容並放入陣列中 mysqli_fetch_array() 函式也是用來讀取記錄並存放在陣列,然後將記錄指標移到下一筆,若讀不到記錄,就傳回FALSE,不同之處在於取得欄位內容時,mysqli_fetch_row() 函式是以欄位序號取得欄位內容,而mysqli_fetch_array() 函式則可以使用欄位序號或欄位名稱取得欄位內容。 mysqli_fetch_array() 函式的語法如下: mysqli_fetch_array(resource result [, int result_type]) 2018/11/16

取得一筆記錄內容放入陣列中 mysqli_fetch_ assoc() 也是用來讀取記錄內容並存放在陣列,然後將記錄指標移到下一筆,其語法如下,參數result為資源識別字: mysqli_fetch_object() 函式也是用來讀取記錄內容,然後將記錄指標移到下一筆,若讀不到記錄,就傳回FALSE,其語法如下,參數result為資源識別字: mysqli_fetch_assoc(resource result) mysqli_fetch_object(resource result) 2018/11/16

移動記錄指標 mysqli_data_seek() 函式可以讓我們輕鬆地移動記錄指標,其語法如下,若移動記錄指標成功,就傳回TRUE,否則傳回FALSE: 例如: mysqli_data_seek(resource result, int row_number) $seek_result = mysqli_data_seek($result, 9); $row = mysqli_fetch_row($result); 2018/11/16

分頁瀏覽 當篩選出來的記錄太多時,我們通常不會一次全部顯示,而是以分頁的方式來顯示,才不會造成瀏覽單一網頁的速度過慢,如右圖 2018/11/16

範例2(1/4) <?php //讓php與MySQL連接 $link = mysqli_connect("localhost", "root", "1234") or die("無法建立連接" . mysqli_connect_error() . ":" . mysqli_connect_error() . "<br>"); mysqli_set_charset($link,"utf8"); //連接資料庫,例如:W14 mysqli_select_db($link, "W14") or die ("無法開啟 W14 資料庫: " . mysqli_error($link)); //開始可以在以下輸入SQL,注意以下資料表的名稱,要修改為真正的資料庫中的資料表名稱 $sql = "SELECT * FROM member "; //執行SQL,並將結果存在$result中 $result = mysqli_query($link, $sql); //取得記錄數 $recNo = mysqli_num_rows($result); echo $recNo . "筆資料"; 2018/11/16

範例2(2/4) //取得欄位資訊 echo "欄位資訊: <br>"; echo "<table width='400' border='1'><tr align='center'>"; echo "<td>欄位名稱</td><td>資料型態</td><td>最大長度</td></tr>"; //宣告一個物件變數$meta while ($meta = mysqli_fetch_field($result)) { echo "<tr>"; echo "<td>$meta->name</td>"; echo "<td>$meta->type</td>"; echo "<td>$meta->max_length</td>"; echo "</tr>"; } 2018/11/16

範例2(3/4) //取得每一筆記錄內容 echo "記錄內容:"; echo "</table>" ; echo "<table width='400' border='1'><tr align='center'>"; echo "<tr>"; while($meta = mysqli_fetch_field($result)) { echo "<td>"; echo $meta->name; echo "</td>"; } 2018/11/16

範例2(4/4) echo "</tr>"; //利用foreach來讀每一筆資料 while($row=mysqli_fetch_assoc($result)) { echo "<tr>"; foreach($row as $item=>$value) { echo "<td width='14%'>"; echo $value; echo "</td>"; } echo "</table>" ; //關閉與MySQL連接 mysqli_close($link); ?> 2018/11/16

實務-會員管理系統 2018/11/16

認識會員管理系統 「會員管理系統」也是網頁上相當常見的功能,瀏覽者欲進入某個網站,必須先申請加入該網站的會員,通常加入會員都是免費的。 以下各圖是我們即將要製作的會員管理系統。 1.輸入帳號與密碼 2.按 [登入] 圖(二) 圖(一) 2018/11/16

圖(三) 加入會員網頁 圖(五) 查詢密碼網頁 圖(四) 註冊成功網頁 2018/11/16

網頁的執行流程 2018/11/16 main.php 會員專屬網頁 帳號與密碼正確 輸入帳號與密碼後按 [登入] member 資料庫 顯示字串「帳號密碼錯誤,請查明後再登入」 帳號與密碼錯誤 checkpwd.php 密碼驗證 delete.php 刪除資料網頁 點取「刪除會員資料」超連結 modify.php 修改資料網頁 點取「修改會員資料」超連結 update.php 更新資料網頁 輸入資料後按 [加入會員] 將資料更新到資料庫 join.htm 加入會員網頁 search_pwd.htm 查詢密碼網頁 addmember.php 新增資料網頁 search.php 處理查詢網頁 點取「加入會員」超連結 將資料寫入資料庫 輸入帳號、E-mail及顯示方式,然後按 [查詢] 寄出密碼通知 選擇網頁顯示 選擇E-mail通知 以網頁顯示帳號與密碼 輸入資料後按[修改資料] 刪除資料庫的資料 讀取資料庫的資料 送回讀取結果 index.htm 首頁 點取「查詢密碼」超連結 查詢使用者帳號與密碼 2018/11/16