當資料庫和資料表建立好後,再來就是讓網頁和資料庫做連線,這樣才能透過網頁將資料寫到資料庫或是從網頁查看資料庫資料。
我們用php來製作與資料庫連線用的檔案,透過php連線去取得或寫入資料庫內的資料。之後再用ajax從php那邊將資料抓到html網頁。
架構圖類似像這樣:
我們用php做資料庫連線時要先知道幾個會用到的程式。
$db = mysqli_connect("localhost", "資料庫使用者", "使用者密碼", "資料庫名稱");
$result = $db -> query("SELECT * FROM user;");
$num = $result->num_rows;
$ARAW = $result -> fetch_assoc();
$output[] = $ARAW; ---記得陣列的變數要在後面加上[]喔
print(json_encode($output, JSON_UNESCAPED_UNICODE));
(以上藍色字體的部分皆可自己定義變數,但要注意的是這幾行程式變數是有相通的,要注意)
上面提到的程式,再搭配之前講過的php的程式,就可以跟資料庫連線。
實際製作一下:
可以看到資料表內的每一筆資料都抓出來,並且欄位名稱也都會一起出現。
現在已經將資料庫連結檔做好了,php那邊也已經取得資料表的資料,再來就是要讓這些資料在html網頁上顯示,這個時候就是要用到ajax了。
Ajax 的全名是『 Ajax: Asynchronous Javascript And XML 』,意思是『非同步 JavaScript 與 XML』的意思,所以,跟資料的『非同步運作』, 透過 JavaScript 與 XML 格式有點關係的資料。
一般來說,如果你的網頁資料非常豐富,因此有影片資料、圖片資料、文字資料、JavaScript 程式碼資料等等,其中影片與圖片資料可能有非常多, 因此,要下載你的這個網頁 (onload) 時,就得要將所有的元件通通下載完畢之後,才能夠開始正常的顯示你的頁面。 在用戶端要求了 URL 之後,用戶端得要等伺服器將『所有的元件』傳輸到用戶端系統後,瀏覽器才開始正常顯示頁面。 這樣傳統的全部資料載入才顯示的方法,對伺服器的 loading 來說相當消耗頻寬。
這時候就可以考慮用Ajax。以 W3 school 網站的 Ajax 說明為例, Ajax 可以作到:
var xhr_db = new XMLHttpRequest(); --> 建立一個Ajax物件
xhr_db.open("POST","db.php",true); --> 向伺服器說明,需要哪個檔案、程式碼或資料
xhr_db.send(); --> 將上述的需求送出。
xhr_db.onload = function(){ --> 當上面的需求完成時就執行這個function
var data = JSON.parse(this.responseText); --> 將抓過來的資料轉成JSON格式
console.log(data); --> 資料取得成功後可以在console中看到抓取到的資料
}
當上面的Ajax物件都成功後,就可以在function裡面用js的程式(ex:document...)將資料做處理。
可以看到我們資料庫的資料顯示在網頁上。
上一章講到的是讓網頁抓去資料庫資料,這一部分要提到的是從網頁上傳資料到資料庫,這一部份不會用到Ajax,而是會用到之前提到的form、input的方式再加上前面提到的資料庫連線檔(php),將資料寫入資料庫。
上傳後會有彈出式視窗
上傳成功後資料表會多一筆資料
從phpmyadmin看也會出現新的資料
刪除資料的做法跟上面的上傳資料是一樣的做法,把SQL的指令改成delete就好,但要注意的是,刪除資料要把被刪除的那筆資料寫清楚,否則有可能會刪錯或多刪除資料,要特別注意喔。
刪除的方式跟上面資料上傳不一樣,資料上傳需要透過輸入框填寫我們要上傳的資料,刪除則是只要透過按鈕按下後就會進行動作,所以當我們按下刪除按鈕後會同時把要刪除的資料一起傳到php檔做動作。
我們可以用兩種方式當按下按鈕時同時傳送資料
刪除成功後會出現告知。
會跳回到原本的網頁,而且少一筆資料。