使用语言操作数据库是重中之重,如果一门语言你不懂得如何操作数据库,那么你还是没有学会这门语言。
同时PHP的值还可以与JavaScript脚本之间进行控制
一般是PHP的值传递到javascript中,一般不会反过来操作
一、基本目标
首先,在MysqL中有一张用户信息表user,里面的字段分别是id,username与password,打开网页dbselect.PHP,首先就用PHP查出整张user表:
然后,插入数据的一栏,输入数据,就可把数据插入到MysqL中的user表当中
在修改数据的一栏中,第一个下拉菜单是通过javascript来创建的,根据表中的数据多少,而给予多少的下拉选项。
至于为什么没有做删除数据,那是因为一来删除数据的操作与修改数据类似,二是因为在自增表中一般不删除数据的,仅仅是设置键值让这条数据隐藏
二、基本思想
程序入口是dbselect.PHP,操作数据库的过程分别是两个新页面,一个dbinsert.PHP,一个是dbupdate.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 totalvar 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> (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");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",$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> 以上,就是整个制作过程。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。