PHP - 下面代码如何实现在执行数据库增删改操作时不调用查找的方法?
服务器及编程工具:
wmap、sublime Text 3
数据库:mysql
数据库信息:数据库 - test;username - root;password - 123456;表名 - users
| id | smallint(5) unsigned | NO | PRI | | auto_increment |
| name | varchar(50) | NO | UNI | | |
期望:在执行数据库增删改的时候不要显示下图中高亮的数据(数据库select的数据)
执行结果:
html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>insert data and show data</title>
</head>
<body>
<p>1. 添加数据</p>
<form id = "postData">
<input type="text" name="name" id="data">
<input type="submit" value="提交">
</form>
<p>2. 删除数据</p>
<form id="del">
<input type="text" name="name" id="data1">
<input type="submit" value="删除">
</form>
<p id="content"></p>
<p>3. 修改数据</p>
<form id="changeData">
<input type="text" name="userid" id="userid" placeholder="需要修改的id">
<input type="text" name="name" id="changeName" placeholder="修改后的姓名">
<input type="submit" value="修改">
</form>
<p id="contentChange"></p>
<p>4. 显示数据</p>
<button id="btn">显示数据</button>
<p id="showData"></p>
<script type="text/javascript">
document.getElementById("postData").addEventListener("submit",postData);
function postData(e){
e.preventDefault();
var name = document.getElementById("data").value;
var xhr = new XMLHttpRequest();
var param = "name="+name;
xhr.open("POST","sum2_sql.php",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")
xhr.onload = function(){
console.log(this.responseText);
}
xhr.send(param);
}
document.getElementById("del").addEventListener("submit",deldata);
function deldata(e){
e.preventDefault();
var name = document.getElementById("data1").value;
var xhr = new XMLHttpRequest();
xhr.open("GET","sum2_sql.php?name="+name,true);
xhr.onload = function(){
document.getElementById("content").innerHTML = this.responseText;
}
xhr.send();
}
document.getElementById("changeData").addEventListener("submit",changeData);
function changeData(e){
e.preventDefault();
var xhr = new XMLHttpRequest();
var id = document.getElementById("userid").value;
var changeName = document.getElementById("changeName").value;
xhr.open("GET","sum2_sql.php?id="+id+"&changeName="+changeName,true);
xhr.onload = function(){
document.getElementById("contentChange").innerHTML = this.responseText;
}
xhr.send();
}
document.getElementById("btn").addEventListener("click",loadData);
function loadData(){
var xhr = new XMLHttpRequest();
xhr.open("GET","sum2_sql.php",true);
var output = '';
xhr.onload = function(){
var users = JSON.parse(xhr.responseText);
//console.log(users[1].id);
for (var i in users){
output += `
<ul>
<li>${users[i].id}</li>
<li>${users[i].name}</li>
</ul>
`
}
document.getElementById("showData").innerHTML = output;
}
xhr.send();
}
</script>
</body>
</html>
PHP代码
<?php
$conn = mysqli_connect("127.0.0.1:3306","root","123456","test");
if(isset($_POST["name"])){
echo "post name is ".$_POST["name"]."\n";
//insert
$name = mysqli_real_escape_string($conn,$_POST["name"]);
$query = "insert into users(name) values('$name')";
if(mysqli_query($conn,$query)){
echo "新增用户成功";
}else{
echo "新增用户失败".mysqli_error($conn);
}
}
//delete
if(isset($_GET["name"])){
echo $_GET["name"]."\n";
$name = mysqli_real_escape_string($conn,$_GET["name"]);
$queryDel = "delete from users where name='$name'";
if(mysqli_query($conn,$queryDel)){
echo "删除成功";
}
else{
echo "删除失败".mysqli_error($conn);
}
}
//change
if(isset($_GET["id"],$_GET["changeName"])){
//echo $_GET["id"].$_GET["changeName"];
$id = mysqli_real_escape_string($conn,$_GET["id"]);
$name = mysqli_real_escape_string($conn,$_GET["changeName"]);
$cquery = "update users set name = '$name' where id = $id;";
if(mysqli_query($conn,$cquery)){
echo "id为".$id."的数据姓名修改成功!<br>修改后姓名为:".$name;
}else{
echo "修改失败".mysqli_error($conn);
}
}
//select
$queryFind = "select * from users";
$result = mysqli_query($conn,$queryFind);
$users = mysqli_fetch_all($result,MYSQLI_ASSOC);
echo json_encode($users);
?>
我感觉在最后4行PHP select部分的代码应该增加判断条件,在符合条件时再点击【显示数据】按钮执行,现在不知道怎么添加判断。
推荐文章: