ホームページ  >  記事  >  バックエンド開発  >  [php] データベースの追加、削除、変更、およびphpとjavascriptの相互作用

[php] データベースの追加、削除、変更、およびphpとjavascriptの相互作用

WBOY
WBOYオリジナル
2016-06-23 13:43:33775ブラウズ

言語を使用してデータベースを操作することが最優先事項です。その言語でデータベースを操作する方法がわからない場合は、その言語をまだ学習していないことになります。

phpでデータベースを操作することは難しくありません

同時に、phpの値をJavaScriptスクリプトで制御することもできます

通常、phpの値はJavaScriptに渡され、他の値には渡されません。


1. 基本的な目標

まず、mysql にユーザー情報テーブル user があります。

中のフィールドは ID、ユーザー名、パスワードです。

Web ページ dbselect を開きます。 php では、まず php を使用してテーブル全体のユーザー テーブルを見つけます:


次に、データ列を挿入し、データを入力すると、データを mysql のユーザー テーブルに挿入できます


列内データを変更する場合、最初のドロップダウン メニューは JavaScript によって作成され、

はテーブル内のデータ量に基づいてドロップダウン オプションの数を示します。


2 番目のドロップダウン メニューでは、ユーザーは変更する列を選択できます

3 番目の入力ボックスでは、変更する値を入力できます


データが削除されない理由については2 番目の理由は、データの操作がデータの変更と似ているためです。通常、データはこのデータを非表示にするためのキー値を設定しているだけです。


2. 基本的な考え方

プログラムの入り口は dbselect で、データベースを操作するプロセスは 2 つの新しいページで、1 つは dbinsert.php で、もう 1 つは dbupdate.php です。 、それらは JavaScript を通じてすぐに返されます。



3. 制作プロセス

(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>

HTML ノードを制御する JavaScript の詳細、参照できますto me 以前書いた記事「【JavaScript】Webページのノードの追加・削除・変更・確認」 (クリックするとリンクが開きます)



(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";</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";</script></body></html>

上記は制作プロセス全体です


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。