PHP實現簡單的學生信息管理系統(web版)

(∩_∩)javascript

 

1.概述php

 

學了php的一些基礎,包括HTML,php,pdo,mysql操做等,一直都沒有將它們有機結合。最近寫了一個簡單的網頁版學生信息管理系統,前臺用HTML,腳本用到了JavaScript和PHP,數據庫用到了MySQL。麻雀雖小,五臟俱全。算是對這些知識的一次總結吧。html

 

2.源碼java

 

工程包括5個php文件:mysql

index.php,負責首頁展示;sql

menu.php,負責前臺的菜單實現;數據庫

add.php,負責添加頁面的實現;數組

edit.php,負責編輯頁面的實現;服務器

action.php,負責對增刪查改操做的實現。ide

 

index.php

 1 <!DOCTYPE html>
 2 <head>
 3     <meta charset="UTF-8">
 4     <title>學生信息管理</title>
 5     <script>
 6         function doDel(id) {
 7             if (confirm("肯定要刪除麼?")) {
 8                 window.location = 'action.php?action=del&id='+id;
 9             }
10         }
11     </script>
12 </head>
13 <body>
14 <center>
15     <?php
16     include_once "menu.php";
17     ?>
18     <h3>瀏覽學生信息</h3>
19     <table width="600" border="1">
20         <tr>
21             <th>ID</th>
22             <th>姓名</th>
23             <th>性別</th>
24             <th>年齡</th>
25             <th>班級</th>
26             <th>操做</th>
27         </tr>
28         <?php
29         //1.鏈接數據庫
30         try {
31             $pdo = new PDO("mysql:host=localhost;dbname=test;", "root", "");
32         } catch (PDOException $e) {
33             die("數據庫鏈接失敗" . $e->getMessage());
34         }
35         //2.解決中文亂碼問題
36         $pdo->query("SET NAMES 'UTF8'");
37         //3.執行sql語句,並實現解析和遍歷
38         $sql = "SELECT * FROM stu ";
39         foreach ($pdo->query($sql) as $row) {
40             echo "<tr>";
41             echo "<td>{$row['id']}</td>";
42             echo "<td>{$row['name']}</td>";
43             echo "<td>{$row['sex']}</td>";
44             echo "<td>{$row['age']}</td>";
45             echo "<td>{$row['classid']}</td>";
46             echo "<td>
47                     <a href='javascript:doDel({$row['id']})'>刪除</a>
48                     <a href='edit.php?id=({$row['id']})'>修改</a>
49                   </td>";
50             echo "</tr>";
51         }
52 
53         ?>
54 
55     </table>
56 </center>
57 
58 </body>
59 </html>
index

 

menu.php

1 <h2>學生信息管理</h2>
2 <a href="index.php">瀏覽學生</a>
3 <a href="add.php">增長學生</a>
4 <hr>
menu

 

add.php

 1 <html>
 2 <head>
 3     <title>學生信息管理</title>
 4 </head>
 5 <body>
 6 <center>
 7     <?php include_once "menu.php"; ?>
 8     <h3>增長學生信息</h3>
 9 
10     <form id="addstu" name="addstu" method="post" action="action.php?action=add">
11         <table>
12             <tr>
13                 <td>姓名</td>
14                 <td><input id="name" name="name" type="text"/></td>
15 
16             </tr>
17             <tr>
18                 <td>性別</td>
19                 <td><input type="radio" name="sex" value="m"/>&nbsp;男
20                     <input type="radio" name="sex" value="w"/>&nbsp;女
21                 </td>
22             </tr>
23             <tr>
24                 <td>年齡</td>
25                 <td><input type="text" name="age" id="age"/></td>
26             </tr>
27             <tr>
28                 <td>班級</td>
29                 <td><input id="classid" name="classid" type="text"/></td>
30             </tr>
31             <tr>
32                 <td>&nbsp;</td>
33                 <td><input type="submit" value="增長"/>&nbsp;&nbsp;
34                     <input type="reset" value="重置"/>
35                 </td>
36             </tr>
37         </table>
38 
39     </form>
40 </center>
41 </body>
42 </html>
add

 

edit.php

 1 <html>
 2 <head>
 3     <meta charset="UTF-8">
 4     <title>學生信息管理</title>
 5 
 6 </head>
 7 <body>
 8 <center>
 9     <?php
10     include_once"menu.php";
11     //1.鏈接數據庫
12     try{
13         $pdo = new PDO("mysql:host=localhost;dbname=test;","root","");
14     }catch(PDOException $e){
15         die("數據庫鏈接失敗".$e->getMessage());
16     }
17     //2.防止中文亂碼
18     $pdo->query("SET NAMES 'UTF8'");
19     //3.拼接sql語句,取出信息
20     $sql = "SELECT * FROM stu WHERE id =".$_GET['id'];
21     $stmt = $pdo->query($sql);//返回預處理對象
22     if($stmt->rowCount()>0){
23         $stu = $stmt->fetch(PDO::FETCH_ASSOC);//按照關聯數組進行解析
24     }else{
25         die("沒有要修改的數據!");
26     }
27     ?>
28     <form id="addstu" name="editstu" method="post" action="action.php?action=edit">
29         <input type="hidden" name="id" id="id" value="<?php echo $stu['id'];?>"/>
30         <table>
31             <tr>
32                 <td>姓名</td>
33                 <td><input id="name" name="name" type="text" value="<?php echo $stu['name']?>"/></td>
34 
35             </tr>
36             <tr>
37                 <td>性別</td>
38                 <td><input type="radio" name="sex" value="m" <?php echo ($stu['sex']=="m")? "checked" : ""?>/>&nbsp;男
39                     <input type="radio" name="sex" value="w"  <?php echo ($stu['sex']=="w")? "checked" : ""?>/>&nbsp;女
40                 </td>
41             </tr>
42             <tr>
43                 <td>年齡</td>
44                 <td><input type="text" name="age" id="age" value="<?php echo $stu['age']?>"/></td>
45             </tr>
46             <tr>
47                 <td>班級</td>
48                 <td><input id="classid" name="classid" type="text" value="<?php echo $stu['classid']?>"/></td>
49             </tr>
50             <tr>
51                 <td>&nbsp;</td>
52                 <td><input type="submit" value="修改"/>&nbsp;&nbsp;
53                     <input type="reset" value="重置"/>
54                 </td>
55             </tr>
56         </table>
57 
58     </form>
59 
60 
61 
62 </center>
63 </body>
64 </html>
edit

 

action.php

 

 1 <?php
 2 //1.鏈接數據庫
 3 try {
 4     $pdo = new PDO("mysql:host=localhost;dbname=test;", "root", "");
 5 
 6 } catch (PDOException $e) {
 7     die("數據庫鏈接失敗" . $e->getMessage());
 8 }
 9 //2.防止中文亂碼
10 $pdo->query("SET NAMES 'UTF8'");
11 //3.經過action的值進行對應操做
12 switch ($_GET['action']) {
13     case 'add':{   //增長操做
14         $name = $_POST['name'];
15         $sex = $_POST['sex'];
16         $age = $_POST['age'];
17         $classid = $_POST['classid'];
18 
19         //寫sql語句
20         $sql = "INSERT INTO stu VALUES (NULL ,'{$name}','{$sex}','{$age}','{$classid}')";
21         $rw = $pdo->exec($sql);
22         if ($rw > 0) {
23             echo "<script> alert('增長成功');
24                             window.location='index.php'; //跳轉到首頁
25                  </script>";
26         } else {
27             echo "<script> alert('增長失敗');
28                             window.history.back(); //返回上一頁
29                  </script>";
30         }
31         break;
32     }
33     case "del": {    //1.獲取表單信息
34         $id = $_GET['id'];
35         $sql = "DELETE FROM stu WHERE id={$id}";
36         $pdo->exec($sql);
37         header("Location:index.php");//跳轉到首頁
38         break;
39     }
40     case "edit" :{   //1.獲取表單信息
41         $id = $_POST['id'];
42         $name = $_POST['name'];
43         $sex = $_POST['sex'];
44         $classid = $_POST['classid'];
45         $age = $_POST['age'];
46 
47         $sql = "UPDATE stu SET name='{$name}',sex='{$sex}',age='{$age}',classid='{$classid}' WHERE id='{$id}'";
48         $rw=$pdo->exec($sql);
49         if($rw>0){
50             echo "<script>alert('修改爲功');window.location='index.php'</script>";
51         }else{
52             echo "<script>alert('修改失敗');window.history.back()</script>";
53         }
54 
55 
56         break;
57     }
58 
59 }
action

 

 

 

 

3.效果

 

4.總結

 

(1)在作這個小工程時,感受本身有了很大提升。想到從前臺的改變,直接對數據庫實現了操做,很神奇。發現本身的弱點是數據傳輸,利用參數傳遞比較薄弱。對於JavaScript腳本的使用還很生硬。

(2)在寫的過程當中遇到了編碼的問題,在這裏說明對於服務器的字符集,數據庫的字符集,每張表的字符集,頁面的字符集都要一致,最好是都設置成UTF-8,而後爲了解決從數據庫取出數據時的中文亂碼問題,在php中鏈接數據庫後就須要執行一句:「SET NAMES 'UTF8'」。

因爲我用的xampp,須要在建立表時,選擇general_utf8_ci的字符集。

相關文章
相關標籤/搜索