剛學了幾天的PHP,然後剛好有個後臺管理的項目要做,抱着學php的目的,便打算用php開始寫。後臺就是對幾張表進行增刪查改操作。
一開始先從簡單的下手,有一張學生信息表,得到裏面的各個信息,並顯示在頁面上。先寫了一個dao.php文件,裏面有一個數據庫連接的方法。因爲要顯示在頁面上,所以採用在php代碼中混合html代碼的方式。用while循環,將得到的所有數據依次輸出到頁面上。因爲學生信息較多,所以在主頁面上只顯示主要的信息,然後有個鏈接,按下之後跳到一個界面顯示該學生的具體所有信息。
一開始不知道怎麼去解決這個鏈接的問題,後來想到用get的方式來鏈接:即寫一個a標籤的超鏈接,鏈接到具體信息界面,並在URL後面添加id=<?php echo $id>的代碼,然後在具體信息界面得到這個id,並且再次查詢數據庫,得到該id對應的詳細信息,並輸出到頁面。
//得到基本信息並輸出到界面
function getStudentList(){
$i=0;
$con=getConn();
$sql ="select * from personinfo ";
$result=$con->query($sql);
if ($result->num_rows > 0) {
echo "<a href='newStudent.php'>新增學生</a><br>";
echo "<a href='../index.html'>返回</a>";
while($row = $result->fetch_assoc() ) {
$i++;
$id=$row['id'];
$name=$row["Name"];
$class=$row["Class"];
$userId=$row["userId"];
$sex=$row["Sex"];
$phone=$row["PhoneNumber"];
$buttonId="button".$i;
?>
<html>
<body>
<form>
ID:<a><?php echo $id?></a>
班級:<input id="class" type="text" value=<?php echo $class ?> >
姓名:<input id="name" type="text" style="width:100px" value=<?php echo $name ?>>
學號:<input type="userId" style="width:100px" value=<?php echo $userId ?>>
性別:<input type="sex" style="width:25px"value=<?php echo $sex ?>>
聯繫方式:<input type="phone" style="width:100px" value=<?php echo $phone ?>>
<a href="studentDetailsConfirm.php?id=<?php echo $id ?>">詳細信息</a>
</form>
</body>
</html>
<?php
}
}
}
這裏需要注意的是,在連接數據庫的時候,如果數據庫裏有中文的數據,需要對數據庫,顯示的頁面及php,數據庫之間的連接都設置編碼格式。$con =new mysqli($host, $user, $password, $database);
mysqli_set_charset ($con,'utf8');
。學生信息詳細顯示的頁面也是同理,在php中嵌套入html代碼即可。
還有一個功能是修改學生信息,代碼大致與顯示詳細信息的頁面代碼相同,只是在顯示信息頁面用p標籤或者a標籤,而在修改學生信息頁面用的是textarea或者input框。需要在dao.php中寫一個修改學生信息的方法,修改完成提交表單後,調用該方法,然後將頁面直接通過JS代碼或者php的header($string)方法跳轉。這裏需要注意的是,如果用header方法,在該方法前不能有輸出語句,會失效。
echo "<script>alert('修改成功');location.href='studentDetailsConfirm.php?id=".$frontid."';</script>";
這樣就將頁面跳轉到修改後的學生信息頁面。
這樣,項目中的一個小小模塊就完成了。其他頁面也是大致相同的方法。