sql >> Databasteknik >  >> RDS >> Mysql

PHP CRUD Skapa, redigera, uppdatera och ta bort inlägg med MySQL-databas

Att skapa, redigera, uppdatera och ta bort innehåll på en webbplats är det som gör webbplatsen dynamisk. Det är vad vi kommer att göra i det här inlägget.

En användare som besöker vår webbplats kommer att kunna skapa inlägg som kommer att sparas i en mysql-databas, hämta inläggen från databasen och visa dem på webbsidan. Varje inlägg kommer att visas med en redigerings- och raderingsknapp för att tillåta användaren att uppdatera inlägg samt ta bort dem.

Skapa först en databas med namnet crud. Skapa en tabell som heter info. i crud-databasen Informationstabellen bör ha följande kolumner:

  • id - int(11)

  • namn - varchar(100)
  • adress - varchar(100)

Käft! Bara två fält. Jag försöker hålla det enkelt här. så låt oss gå vidare till nästa steg.

Skapa en fil som heter index.php och klistra in följande kod i den:

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

Om du sparar och öppnar webbplatsen i din webbläsare får du något sånt här:

Ser inte ut som den bästa formen i världen eller hur? Låt oss fixa det. Lägg till den här raden direkt under -taggen i rubriken i din index.php-fil:</P> <pre><code><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p> Det är länken för att ladda styling från stilmallsfilen. Låt oss skapa styles.css-filen och lägga till denna stilkod i den.</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> Låt oss nu kolla vårt formulär i webbläsaren igen:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463381.png" /></P> <p> Det är bättre! </P> <p> Jag brukar vilja separera min HTML-kod från min PHP-kod så mycket som möjligt. Jag anser att det är bra praxis. På den noten, låt oss skapa en annan fil som heter php_code.php där vi implementerar alla php-funktioner som att ansluta till databasen, fråga efter databasen och liknande.</P> <p> Så öppna php_code.php och klistra in följande kod i den:</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> Inkludera nu den här filen överst (den allra första raden) i din index.php-fil. Som så:</P> <pre><code><?php include('server.php'); ?></code></pre> <p> Vid det här laget är allt som den här koden gör att ansluta till databasen, initiera vissa variabler och spara inskickad data från formuläret till databasen i den information vi skapade tidigare. Det är bara CReate-delen av CRUD. Låt oss fortsätta med de andra.</P> <p> Besök nu din index.php-fil igen och lägg till den här koden direkt under <body>-taggen:</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> Denna kod visar ett bekräftelsemeddelande för att tala om för användaren att en ny post har skapats i databasen. </P> <p> För att hämta databasposterna och visa dem på sidan, lägg till denna kod direkt ovanför inmatningsformuläret:</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> Låt oss skapa en ny post och se om det här fungerar:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463338.png" /></P> <p> ..och voila!! Det fungerar perfekt!</P> <p> Nu går vi vidare till redigering. Överst i din index.php-fil (direkt efter include-satsen) lägg till följande kod:</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> När vi redigerar en databaspost måste vi lägga de gamla värdena i formuläret så att de kan ändras. För att göra det, låt oss ändra våra inmatningsfält i formuläret och ställa in de värden som hämtats från databasen ($name, $address) som värden till <strong>värdet</strong> attribut för formulärfälten.</P> <p> Lägg också till ett dolt fält för att hålla id för posten vi kommer att uppdatera så att den kan identifieras i databasen unikt av dess id. Detta förklarar det bättre:</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> Kom ihåg att allt detta finns i ingången <form>.</P> <p> Om vi ​​nu klickar på redigera-knappen på en viss post från databasen, kommer värdena att fyllas i formuläret och vi kommer att kunna redigera dem. Eftersom vi redigerar på samma formulär som när vi skapar, måste vi sätta ett villkor som bestämmer vilken knapp som ska visas. Vid redigering visar vi till exempel uppdateringsknappen på formuläret och när vi skapar visar vi sparaknappen. Vi gör detta med <strong>uppdateringen </strong> variabel som är boolesk. När uppdateringen är sann, visas uppdateringsknappen och om den är falsk, visas knappen Spara.</P> <p> Byt ut din spara-knapp i formuläret så här:</P> <p> Byt ut ..</P> <pre><code><button class="btn" type="submit" name="save" >Save</button></code></pre> <p> med...</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> Om vi ​​nu kör detta i webbläsaren och klickar på redigera-knappen får vi detta:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463388.png" /></P> <p> Nu kan du se att det är uppdateringsknappen som visas. Låt oss lägga till koden som kommer att köras när den här knappen klickas.</P> <p> Öppna filen php_code.php och lägg till denna kod på knappen:</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> Ändra nu värdena i formuläret och klicka på uppdateringsknappen. </P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463390.png" /></P> <p> Bra!</P> <p> En sista sak:radera poster. Lägg bara till den här koden i slutet av din php_code.php-fil och du är klar:</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> Om du klickar på raderingsknappen raderas posten från databasen och meddelandet visas precis som de andra åtgärderna.</P> <p> </P> <h3> </h3> <h2>Slutsats</h2> <p> Detta för oss till slutet av denna handledning. Jag hoppas att det var till hjälp och värt din tid. Jag är mycket hedrad över ditt tålamod att ha följt detta till slutet. Om du gillar den här handledningen, dela den med dina vänner genom att klicka på någon av ikonerna för sociala medier nedan. Glöm inte att kolla in mina andra tutorials på den här sidan. </P> <p> Tack</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_textover"> <a class='LinkPrevArticle' href='http://sv.sqldat.com/ifs/zxl/1008019451.html' >Komplett användarregistreringssystem med PHP och MySQL-databas </a> <a class='LinkNextArticle' href='http://sv.sqldat.com/ifs/zxl/1008019453.html' >Hur man laddar upp och laddar ner filer PHP och MySQL </a> </div> <section class="svpage2_botmlist"> <ol class="svarticle_list"> <li class="svflexstart"> <i></i> <a href="https://sv.sqldat.com/ifs/bzr/1008004588.html"> <p class="textover" title="Definiera en en-till-en-relation i SQL Server ">Definiera en en-till-en-relation i SQL Server </p> </a> </li> <li class="svflexstart"> <i></i> <a href="https://sv.sqldat.com/ifs/ljl/1008021190.html"> <p class="textover" title="Hur fungerar PostgreSQL security_barrier views? ">Hur fungerar PostgreSQL security_barrier views? </p> </a> </li> <li class="svflexstart"> <i></i> <a href="https://sv.sqldat.com/ifs/zxl/1008019453.html"> <p class="textover" title="Hur man laddar upp och laddar ner filer PHP och MySQL ">Hur man laddar upp och laddar ner filer PHP och MySQL </p> </a> </li> <li class="svflexstart"> <i></i> <a href="https://sv.sqldat.com/ifs/xve/1008001161.html"> <p class="textover" title="PL/SQL-program för att ta bort posterna från tabellen ">PL/SQL-program för att ta bort posterna från tabellen </p> </a> </li> </ol> </section> </section> </section> <footer> <section class="contain_svrow flexbet_sveen svfooter_info flexalignsvg"> <a href="https://sv.sqldat.com" class="svbottom_logo"> <img src="http://www.sqldat.com/css/img/logo.svg" alt=""> </a> <span class="svflexstart"> © COPYRIGHT <a href="https://sv.sqldat.com">http://sv.sqldat.com</a> ALLA RÄTTIGHETER FÖRBEHÅLLNA </span> </section> </footer> <script language='javascript' src='http://www.sqldat.com/css/ad/c.js'></script> </body> </html>