php學習筆記——綜合實例(學生信息管理系統)

一、建立數據庫

這裏省略

二、連接數據庫公共文件

conn.php

<?php
//(1)數據庫配置信息
$db_host="localhost"; //主機名
$db_port="3306"; //端口號
$db_user="root"; //用戶名
$db_pass="root"; //密碼
$db_name="dbname"; //數據庫名
$charset="utf8"; //字符集

//(2)PHP連接MySQL服務器
if(!$link=@mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
{
    echo "<h2>PHP連接MySQL服務器失敗!</h2>";  
    echo "系統錯誤信息:".mysqli_connect_error();
    die(); //中止程序向下運行,也可以用 exit([string $string])
}

//(3)選擇當前數據庫
if(!mysqli_select_db($link,$db_name))
{
    echo "<h2>選擇數據庫{$db_name}失敗!</h2>"
    die();
}

//(4)設置數據庫返回數據字符集
mysqli_set_charset($link,$charset);


?>

三、學生信息列表頁

list.php

<?php
//包含連接數據庫的公共文件
require_once("./conn.php")
//執行查詢語句
$sql="SELECT * FROM student ORDER BY id DESC";
$result=mysqli_query($link,$sql);
//var_dump($result);
//獲取所有行數據
$arrs=mysqli_fetch_all($result,MYSQLI_ASSOC);
//獲取學生人數
$records=mysqli_num_rows($result);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>學生信息管理中心</title>
<script type="text/javascript">
function confirmDel(id)
{
//詢問是否要刪除?
  if(window.confirm("你真的要刪除嗎?"))
  {
    //如果單擊“確定”按鈕,跳轉到delete.php 頁面
    location.href="./delete.php?id="+id; //不是表單發送的就是GET
  }

}
</script>
</head>
<body>
<div style="text-align:center;padding-bottom:10px;">
    <h2>學生信息管理中心</h2>
    <a href="./add.php">添加學生</a>
    共有<font color=red><?php echo $result ?></font>個學生信息
</div>
<table width="600" border="1" align="center" rules="all" cellpadding="5">
  <tr bgcolor='#ccc'>
      <th>編號</th>
      <th>姓名</th>
      <th>性別</th>
      <th>年齡</th>
      <th>學歷</th>
      <th>工資</th>
      <th>獎金</th>
      <th>籍貫</th>
      <th>操作選項</th>
  </tr>
<?php
//循環二維數組
foreach($arrs as $arr)
{
?>
  <tr align='center'>
      <td><?php echo $arr['id']?></td>
      <td><?php echo $arr['name']?></td>
      <td><?php echo $arr['sex']?></td>
      <td><?php echo $arr['age']?></td>
      <td><?php echo $arr['edu']?></td>
      <td><?php echo $arr['salary']?></td>
      <td><?php echo $arr['bonus']?></td>
      <td><?php echo $arr['city']?></td>
      <td>
          <a href="">修改</a> |
          <a href="#" onClick="confirmDel(<?php echo $arr['id']?>)">刪除</a>
      </td>
  </tr> 
<?php
}
?>

</table>
</body>

注意:

require_once("./conn.php");  //不管寫幾遍,都只加載一次

require("./conn.php") ; //寫幾遍加載幾次,容易造成函數重複。PHP不支持函數重載

四、刪除學生信息

delete.php

<?php
//包含連接數據庫的公共代碼
require_once("./conn.php");

//獲取地址欄傳遞的ID
$id=$_GET['id'];

//構建刪除的SQL語言
$sql="DELETE FROM student WHERE id=$id";

//執行SQL語句
if(mysqli_query($link,$sql))
{
    echo "<h2>id={$id}的記錄刪除成功!</h2>";
    //告訴瀏覽器執行代碼,等待3秒,並跳轉到list.php文件
    header("refresh:3;url=./list.php");
    die();//終止程序向下運行
}else
{
    echo "<h2>id={$id}的記錄刪除失敗!</h2>";
    //告訴瀏覽器執行代碼,等待3秒,並跳轉到list.php文件
    header("refresh:3;url=./list.php");
    die();//終止程序向下運行
}

?>

五、添加學生信息

(1)製作添加學生表單

<?php
//判斷表單是否合法提交(防止黑客攻擊)
if(isset($POST['token']) && $_POST['token'=="add"])
{
    //獲取表單提交數據
    $name=$POST['name'];
    $sex=$POST['sex'];
    $age=$POST['age'];
    $edu=$POST['edu'];
    $salary=$POST['salary'];
    $bonus=$POST['bonus'];
    $city=$POST['city'];

    //構建插入的SQL語句
    $sql="INSERT INTO student VALUES(null,'$name','sex','age','edu','salary','bonus','city')";

    //判斷SQL語句是否執行成功
    //執行SQL語句
    if(mysqli_query($link,$sql))
    {
        echo "<h2>記錄添加成功!</h2>";
        //告訴瀏覽器執行代碼,等待3秒,並跳轉到list.php文件
        header("refresh:3;url=./list.php");
        die();//終止程序向下運行
    }else
    {
        echo "<h2>記錄添加失敗!</h2>";
        //告訴瀏覽器執行代碼,等待3秒,並跳轉到list.php文件
        header("refresh:3;url=./list.php");
        die();//終止程序向下運行
    }

}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>學生信息管理中心</title>
</head>
<body>
<div style="text-align:center;padding-bottom:10px;">
    <h2>學生信息管理中心——添加學生</h2>
    <a href="./list.php">返回</a>
</div>

<form method="post" action=""> //action=""  表示表單數據發給自己處理
<table width="400" bordercolor="#ccc" border="1" rules="all" align="center">

  <tr>
    <td width="80" align="right">姓名:</td>
    <td><input type="text" name="name"></td>
  </tr>
  <tr>
    <td width="80" align="right">性別:</td>
    <td><input type="radio" name="sex" value="男" checked>男</td>
    <td><input type="radio" name="sex" value="女">女</td>
  </tr>
  <tr>
    <td width="80" align="right">年齡</td>
    <td><input type="text" name="age"></td>
  </tr>
  <tr>
    <td width="80" align="right">學歷</td>
    <td>
        <select name="edu">
             <option value="1">初中</option>
             <option value="2">高中</option>
             <option value="3" selected="selected">大專</option>
             <option value="4">本科</option>
             <option value="5">研究生</option>
        </select>
    </td>
  </tr>
  <tr>
    <td width="80" align="right">工資:</td>
    <td><input type="text" name="salary"></td>
  </tr>
  <tr>
    <td width="80" align="right">獎金:</td>
    <td><input type="text" name="bonus"></td>
  </tr>
  <tr>
    <td width="80" align="right">籍貫:</td>
    <td><input type="text" name="city"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>
       <input type="submit" name="submit" value="提交">
       <input type="hidden" name="token" value="add"> //add實際中改爲隨機值,防止非法提交
                                                      //服務器一份,表單一份,進行比對,防止                                                      
                                                      //黑客攻擊
       <input type="reset" value="重置">
    </td>
  </tr>
</table>

</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章