php数据库的增删改查 php与javascript之间的交互


Posted in PHP onAugust 31, 2017

使用语言操作数据库是重中之重,如果一门语言你不懂得如何操作数据库,那么你还是没有学会这门语言。

PHP操作数据库的方法并不难
同时php的值还可以与JavaScript脚本之间进行控制

一般是php的值传递到javascript中,一般不会反过来操作

一、基本目标

首先,在mysql中有一张用户信息表user,里面的字段分别是id,username与password,打开网页dbselect.php,首先就用php查出整张user表:

php数据库的增删改查 php与javascript之间的交互

然后,插入数据的一栏,输入数据,就可把数据插入到mysql中的user表当中

php数据库的增删改查 php与javascript之间的交互

在修改数据的一栏中,第一个下拉菜单是通过javascript来创建的,根据表中的数据多少,而给予多少的下拉选项。

php数据库的增删改查 php与javascript之间的交互

第二个下拉菜单让用户选择要修改的列

第三个输入框就是让用户输入要修改的值

php数据库的增删改查 php与javascript之间的交互

至于为什么没有做删除数据,那是因为一来删除数据的操作与修改数据类似,二是因为在自增表中一般不删除数据的,仅仅是设置键值让这条数据隐藏

二、基本思想

程序入口是dbselect.php,操作数据库的过程分别是两个新页面,一个dbinsert.php,一个是dbupdate.php,这两个页面操作完数据库,马上通过javascript返回。

php数据库的增删改查 php与javascript之间的交互

三、制作过程

(1)dbselect.php

也是本实现过程中,最复杂的一个页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>dbselect</title> 
</head> 
 
<body> 
user表: 
<table border="1"> 
<tr> 
<td>id</td> 
<td>username</td> 
<td>password</td> 
</tr> 
<?php 
//php连接数据库的指定动作,其中第一个root是数据库的用户名,第二个root是数据库的密码 
//如果连接失败,马上通过die语句打断后面的所有程序,只输出“连接失败” 
$con=mysql_connect("localhost","root","root"); 
if(!$con){ 
 die("连接失败!"); 
 } 
//要操作test数据库 
mysql_select_db("test",$con); 
//total变量是用来记录user记录条数的 
$total; 
//要在test数据库中操作select count(*) as total from user语句并且把结果放到result变量里 
$result=mysql_query("select count(*) as total from user"); 
//result变量是个数据,$total=$row["total"];把查询结果中的total列的值赋予给php中的total变量 
//$row=mysql_fetch_array($result)能够把当前行的值赋予给row数组,并把游标下移一行,游标并不需要初始化,自动完成 
while($row=mysql_fetch_array($result)){ 
 $total=$row["total"]; 
} 
 
//输出整个表的过程与上面的过程类此 
$result=mysql_query("select * from user"); 
while($row=mysql_fetch_array($result)){ 
 echo "<tr>"; 
 echo "<td>${row["id"]}</td>"; 
 echo "<td>${row["username"]}</td>"; 
 echo "<td>${row["password"]}</td>"; 
 echo "</tr>"; 
} 
//查询完毕,记得人走带门 
mysql_close($con); 
 
?> 
</table> 
<br /> 
 
<!--以下是两个表单,不再赘述了--> 
插入数据: 
<form action="dbinsert.php" method="get"> 
username:<input type="text" name="username" /> 
password:<input type="text" name="password" /> 
<input type="submit" value="go!" /> 
</form> 
 
修改数据: 
<form action="dbupdate.php" method="get"> 
<select id="userid" name="userid"></select> 
<script> 
//这是php与javascript交互部分,把上面求出来的php的$total变量,赋予给javascript的var total 
var total=<?php echo $total; ?>; 
var i=1; 
for(i=1;i<total+1;i++){ 
 //javascript增加节点过程 
 var selectnode=document.createElement("option"); 
 selectnode.value=i; 
 selectnode.innerHTML=i; 
 document.getElementById("userid").appendChild(selectnode); 
} 
</script> 
<select name="rowname"> 
<option value="username">username</option> 
<option value="password">password</option> 
</select> 
<input type="text" name="rowtext" /> 
<input type="submit" value="go!" /> 
</form> 
 
</body> 
</html>

javascript控制html节点的详细,可以参照我之前写的《【JavaScript】网页节点的增删改查》一文(点击打开链接)

(2)dbinsert.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>dbinsert.php</title> 
</head> 
 
<body> 
<?php 
//首先从dbselect.php的表单中接受操作的数据 
//dbselect.php故意用到get方法,只是想说明php中对get与post的处理同样可以通过$_REQUEST["变量名"]来实现 
$username=$_REQUEST["username"]; 
$password=$_REQUEST["password"]; 
//操作数据库的指定动作同dbselect.php。 
$con=mysql_connect("localhost","root","root"); 
if(!$con){ 
 die("连接失败!"); 
 } 
mysql_select_db("test",$con); 
//控制数据库比dbselect.php更加简单,因为不用对数据库的查询结果进行处理 
//只是要注意,这里连接字符串是用到.的,而不是jsp的+,asp的&,请注意! 
mysql_query("insert into user(username,password) values ('".$username."','".$password."');"); 
mysql_close($con); 
?> 
<script> 
alert("添加成功"); 
window.location.href="dbselect.php" rel="external nofollow" rel="external nofollow" ; 
</script> 
</body> 
</html>

(3)dbupdate.php
与dbinsert.php逻辑是一模一样的,只是mysql_query那个的查询语句,从insert into语句变成了update语句而已

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>无标题文档</title> 
</head> 
 
<body> 
<?php 
$userid=$_REQUEST["userid"]; 
$rowname=$_REQUEST["rowname"]; 
$rowtext=$_REQUEST["rowtext"]; 
$con=mysql_connect("localhost","root","root"); 
if(!$con){ 
 die("连接失败!"); 
 } 
mysql_select_db("test",$con); 
mysql_query("update user set ".$rowname."='".$rowtext."' where id=".$userid.";"); 
mysql_close($con); 
?> 
<script> 
alert("修改成功"); 
window.location.href="dbselect.php" rel="external nofollow" rel="external nofollow" ; 
</script> 
</body> 
</html>

以上,就是整个制作过程。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
php延迟静态绑定实例分析
Feb 08 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
Dec 25 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 #PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 #PHP
laravel如何开启跨域功能示例详解
Aug 31 #PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 #PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 #PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 #PHP
php实现与python进行socket通信的方法示例
Aug 30 #PHP
You might like
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
php7 新增功能实例总结
2020/05/25 PHP
小试JQuery的AutoComplete插件
2011/05/04 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
python虚拟环境virtualenv的使用教程
2017/10/20 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
django Serializer序列化使用方法详解
2018/10/16 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
升职自荐书范文
2013/11/28 职场文书
中国好声音广告词
2014/03/18 职场文书
难忘的一课教学反思
2014/04/30 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书