sql >> データベース >  >> RDS >> Mysql

PHP CRUD MySQLデータベースを使用して投稿を作成、編集、更新、削除します

    Webサイトのコンテンツの作成、編集、更新、および削除は、サイトを動的にするものです。これが、この投稿で行うことです。

    私たちのサイトにアクセスしたユーザーは、mysqlデータベースに保存される投稿を作成し、データベースから投稿を取得してWebページに表示することができます。各投稿には編集と削除のボタンが表示され、ユーザーは投稿を更新したり削除したりできます。

    まず、crudという名前のデータベースを作成します。 Crudデータベースで、info。というテーブルを作成します 情報テーブルには次の列が必要です:

    • id-int(11)

    • 名前-varchar(100)
    • アドレス-varchar(100)

    うん!たった2つのフィールド。ここでは物事をシンプルにしようとしています。それでは、次のステップに進みましょう。

    index.phpというファイルを作成し、次のコードを貼り付けます。

    <!DOCTYPE html>
    <html>
    <head>
    	<title>CRUD: CReate, Update, Delete PHP MySQL</title>
    </head>
    <body>
    	<form method="post" action="server.php" >
    		<div class="input-group">
    			<label>Name</label>
    			<input type="text" name="name" value="">
    		</div>
    		<div class="input-group">
    			<label>Address</label>
    			<input type="text" name="address" value="">
    		</div>
    		<div class="input-group">
    			<button class="btn" type="submit" name="save" >Save</button>
    		</div>
    	</form>
    </body>
    </html>

    ブラウザでサイトを保存して開くと、次のようになります。

    世界一の形に見えませんか?それを修正しましょう。 index.phpファイルのheadセクションのタグのすぐ下に次の行を追加します:</P> <pre><code><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p> これは、スタイルシートファイルからスタイルをロードするためのリンクです。 styles.cssファイルを作成し、このスタイリングコードを追加しましょう。</P> <pre><code>body { font-size: 19px; } table{ width: 50%; margin: 30px auto; border-collapse: collapse; text-align: left; } tr { border-bottom: 1px solid #cbcbcb; } th, td{ border: none; height: 30px; padding: 2px; } tr:hover { background: #F5F5F5; } form { width: 45%; margin: 50px auto; text-align: left; padding: 20px; border: 1px solid #bbbbbb; border-radius: 5px; } .input-group { margin: 10px 0px 10px 0px; } .input-group label { display: block; text-align: left; margin: 3px; } .input-group input { height: 30px; width: 93%; padding: 5px 10px; font-size: 16px; border-radius: 5px; border: 1px solid gray; } .btn { padding: 10px; font-size: 15px; color: white; background: #5F9EA0; border: none; border-radius: 5px; } .edit_btn { text-decoration: none; padding: 2px 5px; background: #2E8B57; color: white; border-radius: 3px; } .del_btn { text-decoration: none; padding: 2px 5px; color: white; border-radius: 3px; background: #800000; } .msg { margin: 30px auto; padding: 10px; border-radius: 5px; color: #3c763d; background: #dff0d8; border: 1px solid #3c763d; width: 50%; text-align: center; }</code></pre> <p> それでは、ブラウザでフォームをもう一度確認してみましょう。</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463381.png" /> </P> <p> それは良いです! </P> <p> 私は通常、HTMLコードをPHPコードから可能な限り分離するのが好きです。私はその良い習慣だと思います。その点で、php_code.phpという別のファイルを作成して、データベースへの接続やデータベースのクエリなど、すべてのphp機能を実装しましょう。</P> <p> したがって、php_code.phpを開き、次のコードを貼り付けます。</P> <pre><code><?php session_start(); $db = mysqli_connect('localhost', 'root', '', 'crud'); // initialize variables $name = ""; $address = ""; $id = 0; $update = false; if (isset($_POST['save'])) { $name = $_POST['name']; $address = $_POST['address']; mysqli_query($db, "INSERT INTO info (name, address) VALUES ('$name', '$address')"); $_SESSION['message'] = "Address saved"; header('location: index.php'); } // ...</code></pre> <p> 次に、このファイルをindex.phpファイルの一番上(最初の行)に含めます。そのように:</P> <pre><code><?php include('server.php'); ?></code></pre> <p> この時点で、このコードが行うのは、データベースに接続し、いくつかの変数を初期化し、フォームから送信されたデータを前に作成した情報でデータベースに保存することだけです。これは、CRUDのCReate部分にすぎません。他の人と一緒に進みましょう。</P> <p> ここで、index.phpファイルに再度アクセスし、このコードを<body>タグのすぐ下に追加します:</P> <pre><code>// ... <body> <?php if (isset($_SESSION['message'])): ?> <div class="msg"> <?php echo $_SESSION['message']; unset($_SESSION['message']); ?> </div> <?php endif ?></code></pre> <p> このコードは、データベースに新しいレコードが作成されたことをユーザーに通知する確認メッセージを表示します。 </P> <p> データベースレコードを取得してページに表示するには、入力フォームのすぐ上に次のコードを追加します。</P> <pre><code><?php $results = mysqli_query($db, "SELECT * FROM info"); ?> <table> <thead> <tr> <th>Name</th> <th>Address</th> <th colspan="2">Action</th> </tr> </thead> <?php while ($row = mysqli_fetch_array($results)) { ?> <tr> <td><?php echo $row['name']; ?></td> <td><?php echo $row['address']; ?></td> <td> <a href="index.php?edit=<?php echo $row['id']; ?>" class="edit_btn" >Edit</a> </td> <td> <a href="server.php?del=<?php echo $row['id']; ?>" class="del_btn">Delete</a> </td> </tr> <?php } ?> </table> <form> // ...</code></pre> <p> 新しいレコードを作成して、これが機能するかどうかを確認しましょう:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463338.png" /> </P> <p> ..そして出来上がり!!完璧に機能します!</P> <p> 次に、編集に移ります。 index.phpファイルの先頭(includeステートメントの直後)に次のコードを追加します。</P> <pre><code><?php if (isset($_GET['edit'])) { $id = $_GET['edit']; $update = true; $record = mysqli_query($db, "SELECT * FROM info WHERE id=$id"); if (count($record) == 1 ) { $n = mysqli_fetch_array($record); $name = $n['name']; $address = $n['address']; } } ?></code></pre> <p> データベースレコードを編集するときは、変更できるように古い値をフォームに入力する必要があります。そのためには、フォームの入力フィールドを変更し、データベースから取得した値($ name、$ address)を値として<strong> value</strong>に設定しましょう。 フォームフィールドの属性。</P> <p> また、更新するレコードのIDを保持するための非表示フィールドを追加して、データベース内でそのIDによって一意に認識できるようにします。これはそれをよりよく説明します:</P> <pre><code>// newly added field <input type="hidden" name="id" value="<?php echo $id; ?>"> // modified form fields <input type="text" name="name" value="<?php echo $name; ?>"> <input type="text" name="address" value="<?php echo $address; ?>"></code></pre> <p> そのすべてが入力<form>にあることを忘れないでください。</P> <p> これで、データベースの特定のレコードの編集ボタンをクリックすると、値がフォームに入力され、編集できるようになります。作成時と同じフォームで編集しているので、表示する適切なボタンを決定する条件を設定する必要があります。たとえば、編集するときはフォームに更新ボタンを表示し、作成するときは保存ボタンを表示します。これは、<strong>更新</strong>を使用して行います ブール値である変数。更新がtrueの場合は更新ボタンが表示され、falseの場合は保存ボタンが表示されます。</P> <p> 次のようにフォームの保存ボタンを置き換えます:</P> <p> 交換..</P> <pre><code><button class="btn" type="submit" name="save" >Save</button></code></pre> <p> と...</P> <pre><code><?php if ($update == true): ?> <button class="btn" type="submit" name="update" style="background: #556B2F;" >update</button> <?php else: ?> <button class="btn" type="submit" name="save" >Save</button> <?php endif ?></code></pre> <p> これをブラウザで実行して編集ボタンをクリックすると、次のようになります。</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463388.png" /> </P> <p> これで、表示されているのは更新ボタンであることがわかります。このボタンがクリックされたときに実行されるコードを追加しましょう。</P> <p> php_code.phpファイルを開き、ボタンに次のコードを追加します:</P> <pre><code>// ... if (isset($_POST['update'])) { $id = $_POST['id']; $name = $_POST['name']; $address = $_POST['address']; mysqli_query($db, "UPDATE info SET name='$name', address='$address' WHERE id=$id"); $_SESSION['message'] = "Address updated!"; header('location: index.php'); }</code></pre> <p> 次に、フォームの値を変更して、[更新]ボタンをクリックします。 </P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463390.png" /> </P> <p> すばらしい!</P> <p> 最後に、レコードを削除します。 php_code.phpファイルの最後にこのコードを追加するだけで、準備は完了です。</P> <pre><code>if (isset($_GET['del'])) { $id = $_GET['del']; mysqli_query($db, "DELETE FROM info WHERE id=$id"); $_SESSION['message'] = "Address deleted!"; header('location: index.php'); }</code></pre> <p> 削除ボタンをクリックすると、データベースからレコードが削除され、他のアクションと同じようにメッセージが表示されます。</P> <p> </P> <h3> </h3> <h2>結論</h2> <p> これで、このチュートリアルは終了です。お役に立てて、時間の価値があることを願っています。これを最後まで実行してくださった皆様のご理解とご協力を大変光栄に思います。このチュートリアルが気に入ったら、下のソーシャルメディアアイコンのいずれかをクリックして、友達と共有してください。このサイトで他のチュートリアルをチェックアウトすることを忘れないでください。 </P> <p> ありがとう</P> <br> </section> </article> <div class="ad5"> <script language='javascript' src='http://www.sqldat.com/css/ad/6.js'></script> </div> <div id="turn-page2" class="id_jatextover"> <p class="yuervbfhowp1"> <span class="tyuervnwu45"></span> </p> <a class='LinkPrevArticle' href='http://ja.sqldat.com/bzs/fdl/1010019451.html' >PHPとMySQLデータベースを使用した完全なユーザー登録システム </a> <a class='LinkNextArticle' href='http://ja.sqldat.com/bzs/fdl/1010019453.html' >PHPとMySQLのファイルをアップロードおよびダウンロードする方法 </a> </div> <ul class="wayeowbfw14"> <li class="vbweomxf14"></li> </ul> <section class="page2_brromlist"> <ol class="jaarticle_list"> <li class="jastarth"> <i></i> <a href="https://ja.sqldat.com/bzs/nlr/1010001548.html"> <p class="jatextover" title="SQLServerのALTERTABLEADDCOLUMNステートメントについて ">SQLServerのALTERTABLEADDCOLUMNステートメントについて </p> </a> </li> <li class="jastarth"> <i></i> <a href="https://ja.sqldat.com/bzs/dbe/1010010238.html"> <p class="jatextover" title="Oracleストアドプロシージャで一時テーブルを作成して使用するにはどうすればよいですか? ">Oracleストアドプロシージャで一時テーブルを作成して使用するにはどうすればよいですか? </p> </a> </li> <li class="jastarth"> <i></i> <a href="https://ja.sqldat.com/bzs/fdl/1010014328.html"> <p class="jatextover" title="TIMESTAMP()の例– MySQL ">TIMESTAMP()の例– MySQL </p> </a> </li> <li class="jastarth"> <i></i> <a href="https://ja.sqldat.com/bzs/sql/1010008733.html"> <p class="jatextover" title="データベース全体で空の文字列('')をNULLに設定します ">データベース全体で空の文字列('')をNULLに設定します </p> </a> </li> </ol> </section> </section> </section> <footer> <section class="contajavbe flexjabebnwo jafooter_info jafealign"> <a href="https://ja.sqldat.com" class="jabottom_logo"> <img src="http://www.sqldat.com/css/img/logo.svg" alt=""> </a> <span class="jastarth"> ©著作権 <a href="https://ja.sqldat.com">http://ja.sqldat.com</a> 全著作権所有 </span> </section> </footer> <script language='javascript' src='http://www.sqldat.com/css/ad/c.js'></script> </body> </html>