php(phpstudy、mysql)實現網頁中的註冊、登陸及數據的增刪改查

小知識點:

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!

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