iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0
Software Development

新手後端工程師的學習歷程系列 第 14

Day 14 - 實作第一個 CRUD 之 Read

tags: 2019鐵人賽 PHP CRUD

前言

由於我是個初學者,如果看不到前端面實在有些不知所措,所以在實作 CRUD 的同時,我也會簡單使用一些 html 語法來設計 web 前端,不求美觀,希望大家不用太計較。

當然,如果要專心設計後端程式,不可能每次測試都幫自己刻一個 web 界面出來,網路上也有個好工具,我後面在整理介紹給大家。

PS:為了方便邊做邊測試,CRUD 的順序我會稍微調整一下。

CRUD - Read

1. 先用 Sequel Pro 手動新增幾筆資料

2. 再來個首頁讀取資料庫資料

目標:

我們作一個表格可以顯示會員的名字,生日,eamil,最後一個欄位讓使用者可以修改,刪除。

做法:

新建一個檔案 index.php
程式碼如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>會員資料的 CRUD 練習</title>
</head>
<body>
<h1 align = "center">會員資料總表</h1>
<p align= "center">目前資料筆數:,<a href='create.php'>新增資料</a></p>

<table border="1" align = "center">
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>生日</th>
        <th>Email</th>
        <th>編輯</th>
    </tr>
</table>
</body>
</html>

效果如下:

3. 連結、讀取資料庫

目標:

連結本機的 MySQL,並讀取資料庫(class)中的資料表(members)資料。

做法:

  1. 在原有的 index.php 檔案中 html 語法最上引入昨天作出來的 connMySQL.php 檔案
  2. 加入 sql 語法,查詢資料表
  3. 執行 sql query
  4. 取得資料筆數
<?php
    //1. 引入程式檔
    include("connMySQL.php");
    
    //2. 加入sql 語法,白話文:從 members 的資料表中選擇所有欄位,並依照 cID 遞增排序
    $sql_query = "SELECT * FROM members ORDER BY cID ASC";

    //3. 使用 mysqli_query() 函式可以在 MySQL 中執行 sql 指令後會回傳一個資源識別碼,否則回傳 False。
    $result = mysqli_query($db_link,$sql_query);
    
    //4. 使用 mysqli_num_rows() 函式來取得資料筆數
    $total_records = mysqli_num_rows($result);
?>

<!DOCTYPE html>
<html>
<head>
...略

4.秀出資料

目標:

我們已經取得資料表的內容,接下來是把它依序呈現在表格中

做法:

利用 while 迴圈,判斷是否取得資料內容,如果有資料就秀出資料,沒有則跳離迴圈。

因為資料要呈現在表格之中,所以 while 迴圈要嵌套在 html 語法裡面的 table 標籤中。

PS:除此之外,我們也要將資料筆數秀出來,所以在「目前資料筆數:」後面要加上 <?php echo $total_records;?>

完整程式碼如下

<?php
    include("connMySQL.php");
    $sql_query = "SELECT * FROM members ORDER BY cID ASC";
    $result = mysqli_query($db_link,$sql_query);
    $total_records = mysqli_num_rows($result);
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>會員資料的 CRUD 練習</title>
</head>
<body>
<h1 align = "center">會員資料總表</h1>
<p align= "center">目前資料筆數:<?php echo $total_records;?>,<a href='create.php'>新增資料</a></p>

<table border="1" align = "center">
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>生日</th>
        <th>Email</th>
        <th>編輯</th>
    </tr>
<?php

while($row_result = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>".$row_result['cID']."</td>";
    echo "<td>".$row_result['cName']."</td>";
    echo "<td>".$row_result['cBirthday']."</td>";
    echo "<td>".$row_result['cEmail']."</td>";
    echo "<td><a href='update.php?id=".$row_result['cID']."'>修改</a> ";
    echo "<a href='delete.php?id=".$row_result['cID']."'>刪除</a></td>";
    echo "</tr>";
}
?>
</table>
</body>
</html>

結果如下


上一篇
Day 13 - 實作第一個 CRUD Part I
下一篇
Day 15 - 實作第一個 CRUD 之 Create、Update、Delete
系列文
新手後端工程師的學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言