PHP教程


1.概述
學(xué)了php的一些基礎(chǔ),包括HTML,php,pdo,mysql操作等,一直都沒(méi)有將它們有機(jī)結(jié)合。最近寫(xiě)了一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)版學(xué)生信息管理系統(tǒng),前臺(tái)用HTML,腳本用到了JavaScript和PHP,數(shù)據(jù)庫(kù)用到了MySQL。麻雀雖小,五臟俱全。算是對(duì)這些知識(shí)的一次總結(jié)吧。
2.源碼
工程包括5個(gè)php文件:
index.php,負(fù)責(zé)首頁(yè)展現(xiàn);
menu.php,負(fù)責(zé)前臺(tái)的菜單實(shí)現(xiàn);
add.php,負(fù)責(zé)添加頁(yè)面的實(shí)現(xiàn);
edit.php,負(fù)責(zé)編輯頁(yè)面的實(shí)現(xiàn);
action.php,負(fù)責(zé)對(duì)增刪查改操作的實(shí)現(xiàn)。
index.php
1 <!DOCTYPE html>
2 <head>
3 <meta charset="UTF-8">
4 <title>學(xué)生信息管理</title>
5 <script>
6 function doDel(id) {
7 if (confirm("確定要?jiǎng)h除么?")) {
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>瀏覽學(xué)生信息</h3>
19 <table width="600" border="1">
20 <tr>
21 <th>ID</th>
22 <th>姓名</th>
23 <th>性別</th>
24 <th>年齡</th>
25 <th>班級(jí)</th>
26 <th>操作</th>
27 </tr>
28 <?php
29 //1.連接數(shù)據(jù)庫(kù)
30 try {
31 $pdo = new PDO("mysql:host=localhost;dbname=test;", "root", "");
32 } catch (PDOException $e) {
33 die("數(shù)據(jù)庫(kù)連接失敗" . $e->getMessage());
34 }
35 //2.解決中文亂碼問(wèn)題
36 $pdo->query("SET NAMES 'UTF8'");
37 //3.執(zhí)行sql語(yǔ)句,并實(shí)現(xiàn)解析和遍歷
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>學(xué)生信息管理</h2>
2 <a href="index.php">瀏覽學(xué)生</a>
3 <a href="add.php">增加學(xué)生</a>
4 <hr>
add.php
1 <html>
2 <head>
3 <title>學(xué)生信息管理</title>
4 </head>
5 <body>
6 <center>
7 <?php include_once "menu.php"; ?>
8 <h3>增加學(xué)生信息</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>班級(jí)</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>學(xué)生信息管理</title>
5
6 </head>
7 <body>
8 <center>
9 <?php
10 include_once"menu.php";
11 //1.連接數(shù)據(jù)庫(kù)
12 try{
13 $pdo = new PDO("mysql:host=localhost;dbname=test;","root","");
14 }catch(PDOException $e){
15 die("數(shù)據(jù)庫(kù)連接失敗".$e->getMessage());
16 }
17 //2.防止中文亂碼
18 $pdo->query("SET NAMES 'UTF8'");
19 //3.拼接sql語(yǔ)句,取出信息
20 $sql = "SELECT * FROM stu WHERE id =".$_GET['id'];
21 $stmt = $pdo->query($sql);//返回預(yù)處理對(duì)象
22 if($stmt->rowCount()>0){
23 $stu = $stmt->fetch(PDO::FETCH_ASSOC);//按照關(guān)聯(lián)數(shù)組進(jìn)行解析
24 }else{
25 die("沒(méi)有要修改的數(shù)據(jù)!");
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>班級(jí)</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.連接數(shù)據(jù)庫(kù)
3 try {
4 $pdo = new PDO("mysql:host=localhost;dbname=test;", "root", "");
5
6 } catch (PDOException $e) {
7 die("數(shù)據(jù)庫(kù)連接失敗" . $e->getMessage());
8 }
9 //2.防止中文亂碼
10 $pdo->query("SET NAMES 'UTF8'");
11 //3.通過(guò)action的值進(jìn)行對(duì)應(yīng)操作
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 //寫(xiě)sql語(yǔ)句
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'; //跳轉(zhuǎn)到首頁(yè)
25 </script>";
26 } else {
27 echo "<script> alert('增加失敗');
28 window.history.back(); //返回上一頁(yè)
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");//跳轉(zhuǎn)到首頁(yè)
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.總結(jié)
(1)在做這個(gè)小工程時(shí),感覺(jué)自己有了很大提高。想到從前臺(tái)的改變,直接對(duì)數(shù)據(jù)庫(kù)實(shí)現(xiàn)了操作,很神奇。發(fā)現(xiàn)自己的弱點(diǎn)是數(shù)據(jù)傳輸,利用參數(shù)傳遞比較薄弱。對(duì)于JavaScript腳本的使用還很生硬。
(2)在寫(xiě)的過(guò)程中遇到了編碼的問(wèn)題,在這里說(shuō)明對(duì)于服務(wù)器的字符集,數(shù)據(jù)庫(kù)的字符集,每張表的字符集,頁(yè)面的字符集都要一致,最好是都設(shè)置成UTF-8,然后為了解決從數(shù)據(jù)庫(kù)取出數(shù)據(jù)時(shí)的中文亂碼問(wèn)題,在php中連接數(shù)據(jù)庫(kù)后就需要執(zhí)行一句:“SET NAMES 'UTF8'”。
由于我用的xampp,需要在創(chuàng)建表時(shí),選擇general_utf8_ci的字符集。
標(biāo)簽: 暫無(wú)
新聞推薦
- H5制作開(kāi)發(fā) 互動(dòng)、游戲 2023/12/26
- 蘇州、昆山、太倉(cāng)小程序開(kāi)發(fā)制作報(bào)價(jià) 2023/12/26
- PHP教程 2023/10/13
- 專(zhuān)業(yè)的H5制作設(shè)計(jì)開(kāi)發(fā)公司服務(wù)商 線索連接 后臺(tái)管理 2023/10/13
- 蘇州物流小程序開(kāi)發(fā)制作專(zhuān)業(yè)定制公司 2023/10/12
- 做微信小程序制作過(guò)程 哪些需要注冊(cè) 2023/10/07
- 一步一步教你怎么開(kāi)發(fā)自己的小程序! 2023/09/19
- 做APP開(kāi)發(fā) 小程序開(kāi)發(fā) 你要知道的步驟 文博網(wǎng)絡(luò) 2023/09/01