(∩_∩)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>
menu.php
1 <h2>學生信息管理</h2> 2 <a href="index.php">瀏覽學生</a> 3 <a href="add.php">增長學生</a> 4 <hr>
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"/> 男 20 <input type="radio" name="sex" value="w"/> 女 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> </td> 33 <td><input type="submit" value="增長"/> 34 <input type="reset" value="重置"/> 35 </td> 36 </tr> 37 </table> 38 39 </form> 40 </center> 41 </body> 42 </html>
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" : ""?>/> 男 39 <input type="radio" name="sex" value="w" <?php echo ($stu['sex']=="w")? "checked" : ""?>/> 女 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> </td> 52 <td><input type="submit" value="修改"/> 53 <input type="reset" value="重置"/> 54 </td> 55 </tr> 56 </table> 57 58 </form> 59 60 61 62 </center> 63 </body> 64 </html>
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 }
3.效果
4.總結
(1)在作這個小工程時,感受本身有了很大提升。想到從前臺的改變,直接對數據庫實現了操做,很神奇。發現本身的弱點是數據傳輸,利用參數傳遞比較薄弱。對於JavaScript腳本的使用還很生硬。
(2)在寫的過程當中遇到了編碼的問題,在這裏說明對於服務器的字符集,數據庫的字符集,每張表的字符集,頁面的字符集都要一致,最好是都設置成UTF-8,而後爲了解決從數據庫取出數據時的中文亂碼問題,在php中鏈接數據庫後就須要執行一句:「SET NAMES 'UTF8'」。
因爲我用的xampp,須要在建立表時,選擇general_utf8_ci的字符集。