小知識點:
1. php如何接受客戶端請求的數據
客戶端向服務器提交數據方式一 :
使用表單的name屬性提交
服務器接收數據的方式:
method = get 使用 $_GET[“name值”]接收
method = post 使用 $_POST[“name值”] 接收
擴展 : 使用 $_REQUEST[“name值”] 接收 ,不要考慮method的值
2. php生成動態網頁的原理
動態網頁 : 數據是從服務器上獲取到的
案列:通過php實現登陸註冊增刪改查數據的功能
1.創建自己的 mysql 數據庫及數據表
sql語句
創建數據庫 create database 數據庫名稱
刪除數據庫 drop database 數據庫名稱
創建表
create table tablename
(
字段名 類型, auto_increment
…
)
表數據的操作 :
增 insert
刪 delete
改 update 表名 set
查 select
php操作mysql流程
1.首先創建一個數據庫數據庫設計
數據庫 : dbstudent
表 :
用戶表 : user
create table user
(
uid int primary key auto_increment,
uname varchar(100),
upwd varchar(100)
)
學生成績表 : score
create table score
(
sid int primary key auto_increment,
sname varchar(100),
js int,
h5 int
)
2.註冊的邏輯結構
3.登陸、顯示數據、增刪改查的邏輯
登陸的邏輯:通過get或者post方法傳值到服務器,通過服務器對數據的查詢,檢查是否存在此用戶名,如果用戶名不存在則返回不存在此用戶並跳轉到登錄頁面。如果存在則對比密碼是否和輸入的相同,如果相同便顯示登陸成功,不相同便返回密碼錯誤。
顯示數據的邏輯:
登陸成功後跳轉到主界面:顯示數據的頁面,通過動態生成的表格顯示數據庫中的數據。(下面會有詳細代碼)
數據增加邏輯:
通過對get或者post方法傳值到服務器端,通過服務器端得到數據,然後通過服務器對數據庫的增加操作來添加數據。
刪除數據的邏輯:
點擊刪除跳轉的同時,在地址上添加此條數據的id ,傳id 到服務器端,通過然後通過php對數據庫操作,刪除此條id的數據。並且跳轉回到顯示數據的頁面。
修改數據的邏輯:
修改的邏輯比較複雜,同刪除前半部分相似,點擊修改跳轉的同時,將此條數據的id傳到另一個頁面(服務器動態生成),在另一個頁面中,通過傳值過來的id在數據庫中查找此id的數據,並動態生成一個form表單顯示該條數據,然後再此頁面對數據進行修改;修改結束後再通過動態生成的頁面中的form的submit來提交到另一個服務器頁面中,這時id要一直傳過來,然後通過php對數據庫的修改方法來修改數據庫中的數據,修改完成後再次跳轉到數據顯示頁面。
下面是代碼:
register頁面及php服務器端文件代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="register.php" method="post">
用戶名 : <input type="text" name="uname"/><br>
密碼 : <input type="text" name="upwd"/><br>
<input type="submit" value="註冊"/>
</form>
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
//第一步 : 接收客戶端請求的數據
$username = $_POST["uname"];
$userpwd = $_POST["upwd"];
//echo $username , $userpwd;
//第二步 : 處理數據 php操作mysql
//一、連接數據源 返回連接的數據源 返回值後面會用
$db = mysql_connect("localhost","root","root");
//二、選擇數據庫
mysql_select_db( "db1819" , $db );
//三、設置字符編碼
mysql_query("set names utf8");
//四、編寫sql語句 在mysql編輯器下寫好執行後沒有問題了 粘貼過來
$sql = "insert into user(`uname`,`upwd`) values('$username','$userpwd')";
//五、執行sql語句--執行insert 返回受影響的行數
$row = mysql_query( $sql );
//第三步 : 返回結果
if( $row ){
echo "<script>alert('註冊用戶成功');location.href='login.html';</script>";
}else{
echo "<script>alert('註冊用戶失敗');location.href='register.html';</script>";
}
/*
排錯 :
1、檢查數據是否接到 數據是否正確的傳遞到服務器上
2、檢查 數據庫是否存在
3、檢查sql語句是否正確
4、echo的數據語句 js腳本代碼
*/
?>
登陸界面及其php文件代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="login.php" method="post">
用戶名 : <input type="text" name="uname"/><br>
密碼 : <input type="text" name="upwd"/><br>
<input type="submit" value="登錄"/>
</form>
</body>
</html>
<?php
//引入public.php文件
include "public.php";
//第一步:接收數據
$username = $_POST["uname"];
$userpwd = $_POST["upwd"];
//第二步:處理數據
$sql = "select * from user where `uname`='$username'";
$res = mysql_query( $sql );
//執行select查詢操作時,返回的結果是一個資源類型 需要通過mysql_fetch_array() 得到資源類型中的數據
$arr = mysql_fetch_array( $res );
//mysql_fetch_array() 每執行一次,只取出資源類型中的一條數據 並返回一個數組
//判斷數組是否存在 如果存在,說明用戶名存在
if( $arr ){
if( $userpwd == $arr["upwd"] ){ //如果用戶名存在 判斷密碼是否相等
echo "<script>alert('登錄成功');location.href='scorelist.php';</script>";
}else{
echo "<script>alert('密碼錯誤');location.href='login.html';</script>";
}
}else{
echo "<script>alert('該用戶不存在');location.href='login.html';</script>";
}
//第三步:返回結果
//echo $res;
?>
數據顯示頁面的代碼
<h3><a href="add.html">添加學生成績</a></h3>
<?php
//操作數據庫
include "public.php";
$sql = "SELECT * FROM `score`";
$res = mysql_query( $sql );
echo "<table border=1 width=500>";
echo "<tr><td>編號</td><td>姓名</td><td>h5</td><td>js</td><td>操作</td></tr>";
while( $arr = mysql_fetch_array( $res ) ){
echo "<tr>
<td>{$arr['sid']}</td>
<td>{$arr['sname']}</td>
<td>{$arr['h5']}</td>
<td>{$arr['js']}</td>
<td> <a href='delete.php?id={$arr['sid']}'>刪除</a> | <a href='update.php?id={$arr['sid']}'>修改</a> </td>
</tr>";
}
echo "</table>";
?>
<style type="text/css">
td{
text-align: center;
}
</style>
數據的增刪改查操作:
增:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="add.php" method="post">
學生名: <input type="text" name="sname"/><br>
h5 : <input type="text" name="h5" /><br>
js : <input type="text" name="js" /><br>
<input type="submit" value="添加"/>
</form>
</body>
</html>
<?php
//接收數據
$sname = $_POST["sname"];
$h5 = $_POST["h5"];
$js = $_POST["js"];
include "public.php";
//編寫sql語句
$sql = "INSERT INTO `score`(`sname`, `js`, `h5`) VALUES ('$sname',$js,$h5)";
//執行sql
$row = mysql_query( $sql );
if( $row ){
echo "<script>alert('學生成績添加成功');location.href='scorelist.php';</script>";
}else{
echo "<script>alert('學生成績添加失敗');location.href='add.html';</script>";
}
?>
刪:
<?php
include "public.php";
//get 是路徑傳值 post非路徑傳值
//刪除功能
//接收數據 接收id
$id = $_GET["id"];
//處理數據 操作數據
$sql = "DELETE FROM `score` WHERE `sid`= $id";
$row = mysql_query( $sql );
//返回結果
if( $row ){
echo "<script>alert('刪除成功');location.href='scorelist.php';</script>";
}else{
echo "<script>alert('刪除失敗');location.href='scorelist.php';</script>";
}
?>
查:
<h3><a href="add.html">添加學生成績</a></h3>
<?php
//操作數據庫
include "public.php";
$sql = "SELECT * FROM `score`";
$res = mysql_query( $sql );
echo "<table border=1 width=500>";
echo "<tr><td>編號</td><td>姓名</td><td>h5</td><td>js</td><td>操作</td></tr>";
while( $arr = mysql_fetch_array( $res ) ){
echo "<tr>
<td>{$arr['sid']}</td>
<td>{$arr['sname']}</td>
<td>{$arr['h5']}</td>
<td>{$arr['js']}</td>
<td> <a href='delete.php?id={$arr['sid']}'>刪除</a> | <a href='update.php?id={$arr['sid']}'>修改</a> </td>
</tr>";
}
echo "</table>";
?>
<style type="text/css">
td{
text-align: center;
}
</style>
改:
<?php
include "public.php";
//接收數據
$id = $_GET["id"];
//處理數據 根據id查找其他信息
$sql = "SELECT * FROM `score` WHERE `sid` = $id";
$res = mysql_query( $sql );
$arr = mysql_fetch_array( $res );
//echo "姓名 : <input type='text' value='{$arr['sname']}'>";
?>
<form action="updateDo.php" method="post">
<input type="hidden" name="sid" value="<?php echo "{$arr['sid']}";?>"/>
姓名 : <input type="text" name="sname" value="<?php echo "{$arr['sname']}";?>"/><br>
h5 : <input type="text" name="h5" value="<?php echo "{$arr['h5']}";?>"/><br>
js : <input type="text" name="js" value="<?php echo "{$arr['js']}";?>"/><br>
<input type="submit" value="確認修改"/>
</form>
<?php
include "public.php";
//接收數據
$sname = $_POST["sname"];
$h5 = $_POST["h5"];
$js = $_POST["js"];
$id = $_POST["sid"];
//編寫sql語句
$sql = "UPDATE `score` SET `sname`='$sname',`js`=$js,`h5`=$h5 WHERE `sid`=$id";
$row = mysql_query( $sql );
if( $row ){
echo "<script>alert('修改成功');location.href='scorelist.php';</script>";
}else{
echo "<script>alert('修改失敗');location.href='scorelist.php';</script>";
}
?>
文件名稱(相對應上面的代碼)
over!