ホームページ バックエンド開発 PHPチュートリアル [php] データベースの追加、削除、変更、およびphpとjavascriptの相互作用

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

Jun 23, 2016 pm 01:43 PM

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

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles