本文將完整展示一個基於 PHP + MySQL 的學生資料管理系統,包含新增、刪除、修改、查詢等核心 CRUD 功能。系統採用 PDO 連接資料庫,程式碼結構清晰,適合初學者參考學習。
| 檔案 | 功能說明 |
|---|---|
| index.php | 主介面 - 顯示學生列表、提供修改/刪除入口 |
| add.php | 新增學生資料表單 |
| edit.php | 修改學生資料表單 |
| action.php | 處理表單提交(新增/刪除/修改)與資料庫互動 |
| menu.php | 共用導航選單 |
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>學生資訊管理系統</title>
<script>
function doDel(id) {
if (confirm('確定要刪除這筆資料嗎?')) {
window.location = 'action.php?action=del&id=' + id;
}
}
</script>
</head>
<body>
<center>
<?php include("menu.php"); ?>
<h3>瀏覽學生資訊</h3>
<table width="500" border="1" cellpadding="5" cellspacing="0">
<tr>
<th>ID</th><th>姓名</th><th>性別</th>
<th>年齡</th><th>班級</th><th>操作</th>
</tr>
<?php
try {
$pdo = new PDO("uri:mysqlPdo.ini", "root", "1");
} catch (PDOException $e) {
die('資料庫連線失敗: ' . $e->getMessage());
}
$sql = "SELECT * FROM stu";
foreach ($pdo->query($sql) as $row) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['sex']}</td>";
echo "<td>{$row['age']}</td>";
echo "<td>{$row['classid']}</td>";
echo "<td>
<a href='edit.php?id={$row['id']}'>修改</a> |
<a href='javascript:void(0);' onclick='doDel({$row['id']})'>刪除</a>
</td>";
echo "</tr>";
}
?>
</table>
</center>
</body>
</html>
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>新增學生資料</title>
</head>
<body>
<center>
<?php include('menu.php'); ?>
<h3>增加學生資訊</h3>
<form action="action.php?action=add" method="post">
<table>
<tr><td>姓名</td><td><input type="text" name="name" required></td></tr>
<tr><td>年齡</td><td><input type="number" name="age" min="1" max="100" required></td></tr>
<tr><td>性別</td><td>
<input type="radio" name="sex" value="男" required>男
<input type="radio" name="sex" value="女">女
</td></tr>
<tr><td>班級</td><td><input type="text" name="classid" required></td></tr>
<tr>
<td><a href="index.php">返回列表</a></td>
<td><input type="submit" value="確定新增"></td>
<td><input type="reset" value="重置表單"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?php
try {
$pdo = new PDO("uri:mysqlPdo.ini", "root", "1");
} catch (PDOException $e) {
die('資料庫連線失敗: ' . $e->getMessage());
}
switch ($_GET['action']) {
case 'add':
$sql = "INSERT INTO stu (name, sex, age, classid) VALUES (?, ?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_POST['name'], $_POST['sex'], $_POST['age'], $_POST['classid']]);
break;
case 'del':
$sql = "DELETE FROM stu WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_GET['id']]);
break;
case 'edit':
$sql = "UPDATE stu SET name=?, age=?, sex=?, classid=? WHERE id=?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_POST['name'], $_POST['age'], $_POST['sex'], $_POST['classid'], $_POST['id']]);
break;
}
header('Location: index.php');
?>
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>修改學生資料</title>
</head>
<body>
<center>
<?php
include('menu.php');
try {
$pdo = new PDO("uri:mysqlPdo.ini", "root", "1");
} catch (PDOException $e) {
die('連線失敗: ' . $e->getMessage());
}
$stmt = $pdo->prepare("SELECT * FROM stu WHERE id = ?");
$stmt->execute([$_GET['id']]);
$stu = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$stu) die("找不到指定學生 ID: {$_GET['id']}");
?>
<h3>修改學生資訊</h3>
<form action="action.php?action=edit" method="post">
<input type="hidden" name="id" value="<?php echo $stu['id']; ?>">
<table>
<tr><td>姓名</td><td><input type="text" name="name" value="<?php echo $stu['name']; ?>" required></td></tr>
<tr><td>年齡</td><td><input type="number" name="age" value="<?php echo $stu['age']; ?>" min="1" max="100" required></td></tr>
<tr><td>性別</td><td>
<input type="radio" name="sex" value="男" <?php echo $stu['sex']=='男'?'checked':''; ?>>男
<input type="radio" name="sex" value="女" <?php echo $stu['sex']=='女'?'checked':''; ?>>女
</td></tr>
<tr><td>班級</td><td><input type="text" name="classid" value="<?php echo $stu['classid']; ?>" required></td></tr>
<tr>
<td></td>
<td><input type="submit" value="更新資料"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<!DOCTYPE html> <html lang="zh-TW"> <body> <h2>學生管理系統</h2> <a href="index.php">瀏覽學生</a> | <a href="add.php">新增學生</a> <hr> </body> </html>
CREATE TABLE `stu` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`sex` ENUM('男','女') NOT NULL,
`age` TINYINT(3) UNSIGNED NOT NULL,
`classid` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
這個學生管理系統雖然功能簡單,但涵蓋了 PHP Web 開發的核心概念:表單處理、資料庫操作、頁面跳轉、模組化設計。建議初學者先跑通流程,再嘗試加入分頁、搜尋、匯出 Excel 等進階功能。