sql >> Database teknologi >  >> RDS >> Mysql

PHP CRUD Opret, rediger, opdater og slet indlæg med MySQL-database

Oprettelse, redigering, opdatering og sletning af indhold på en hjemmeside er det, der gør siden dynamisk. Det er det, vi skal gøre i dette indlæg.

En bruger, der besøger vores websted, vil være i stand til at oprette indlæg, der bliver gemt i en mysql-database, hente indlæggene fra databasen og vise dem på websiden. Hvert indlæg vil blive vist med en redigerings- og sletningsknap for at tillade brugeren at opdatere indlæg samt slette dem.

Først skal du oprette en database med navnet crud. I crud-databasen skal du oprette en tabel kaldet info. Infotabellen skal have følgende kolonner:

  • id - int(11)

  • navn - varchar(100)
  • adresse - varchar(100)

Jep! Kun to felter. Jeg prøver at holde tingene simple her. så lad os gå videre til næste trin.

Opret en fil kaldet index.php og indsæt følgende kode 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>

Hvis du gemmer og åbner siden i din browser, får du noget som dette:

Det ligner ikke den bedste form i verden vel? Lad os ordne det. Tilføj denne linje direkte under -tagget i hovedsektionen af ​​din index.php-fil:</P> <pre><code><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p> Det er linket til at indlæse styling fra stylesheet-filen. Lad os oprette styles.css-filen og tilføje denne stylingkode 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> Lad os nu tjekke vores formular ud i browseren igen:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463381.png" /></P> <p> Det er bedre! </P> <p> Jeg kan normalt godt lide at adskille min HTML-kode fra min PHP-kode så meget som muligt. Det mener jeg er god praksis. Med den bemærkning, lad os oprette en anden fil kaldet php_code.php, hvor vi implementerer alle php-funktioner som at oprette forbindelse til databasen, forespørge i databasen og lignende.</P> <p> Så åbn php_code.php og indsæt følgende kode 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> Medtag nu denne fil øverst (den allerførste linje) i din index.php-fil. Sådan:</P> <pre><code><?php include('server.php'); ?></code></pre> <p> På dette tidspunkt er alt, hvad denne kode gør, at oprette forbindelse til databasen, initialisere nogle variabler og gemme indsendte data fra formularen til databasen i de oplysninger, vi oprettede tidligere. Det er kun CREate-delen af ​​CRUD. Lad os fortsætte med de andre.</P> <p> Besøg nu din index.php-fil igen og tilføj denne kode lige under <body>-tagget:</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> Denne kode viser en bekræftelsesmeddelelse for at fortælle brugeren, at der er oprettet en ny post i databasen. </P> <p> For at hente databaseposterne og vise dem på siden skal du tilføje denne kode umiddelbart over inputformularen:</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> Lad os oprette en ny post og se, om disse ting virker:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463338.png" /></P> <p> ..og voila!! Det fungerer perfekt!</P> <p> Nu går vi over til redigering. Øverst i din index.php-fil (umiddelbart efter include-sætningen) tilføj følgende kode:</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 redigerer en databasepost, skal vi indsætte de gamle værdier i formularen, så de kan ændres. For at gøre det, lad os ændre vores inputfelter på formularen og indstille de værdier taget fra databasen ($name, $address) som værdier til <strong>værdien</strong> attribut for formularfelterne.</P> <p> Tilføj også et skjult felt for at holde id'et for den post, vi vil opdatere, så den kan genkendes i databasen unikt af dens id. Dette forklarer det bedre:</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> Husk alt det er i inputtet <form>.</P> <p> Hvis vi nu klikker på redigeringsknappen på en bestemt post fra databasen, vil værdierne blive udfyldt i formularen, og vi vil være i stand til at redigere dem. Da vi redigerer på samme formular, som da vi opretter, er vi nødt til at sætte en betingelse, der bestemmer, hvilken knap der skal vises. For eksempel, når vi redigerer, viser vi opdateringsknappen på formularen, og når vi opretter, viser vi gem-knappen. Det gør vi ved at bruge <strong>opdateringen </strong> variabel, som er boolesk. Når opdateringen er sand, vises opdateringsknappen, og hvis den er falsk, vises knappen Gem.</P> <p> Udskift din gem-knap på formularen sådan her:</P> <p> Udskift ..</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> Hvis vi nu kører dette på browseren og klikker på rediger-knappen, får vi dette:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463388.png" /></P> <p> Nu kan du se, at det er opdateringsknappen, der vises. Lad os tilføje koden, der vil blive udført, når der klikkes på denne knap.</P> <p> Åbn filen php_code.php og tilføj denne kode 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> Skift nu værdierne i formularen, og klik på opdateringsknappen. </P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463390.png" /></P> <p> Fantastisk!</P> <p> En sidste ting:sletning af poster. Bare tilføj denne kode i slutningen af ​​din php_code.php-fil, så er du 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> Hvis du klikker på slet-knappen, sletter den posten fra databasen og viser beskeden ligesom de andre handlinger.</P> <p> </P> <h3> </h3> <h2>Konklusion</h2> <p> Dette bringer os til slutningen af ​​denne tutorial. Jeg håber, det var nyttigt og værd at bruge tid på. Jeg er meget beæret over din tålmodighed over at have fulgt dette til det sidste. Hvis du kan lide denne tutorial, så del den med dine venner ved at klikke på et af de sociale medier-ikoner nedenfor. Glem ikke at tjekke mine andre tutorials på denne side. </P> <p> Tak</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_datextoverer"> <a class='LinkPrevArticle' href='http://da.sqldat.com/fds/wtl/1007019451.html' >Komplet brugerregistreringssystem ved hjælp af PHP og MySQL database </a> <a class='LinkNextArticle' href='http://da.sqldat.com/fds/wtl/1007019453.html' >Sådan uploader og downloader du filer PHP og MySQL </a> </div> <section class="daftrpage2_bottomlist"> <ol class="daarticle_list"> <li class="da_flexstart"> <i></i> <a href="https://da.sqldat.com/fds/gee/1007000876.html"> <p class="datextoverer" title="Sådan ændres webporten i EBS 12.2 ">Sådan ændres webporten i EBS 12.2 </p> </a> </li> <li class="da_flexstart"> <i></i> <a href="https://da.sqldat.com/fds/lir/1007015195.html"> <p class="datextoverer" title="Sådan fungerer APPROX_COUNT_DISTINCT() i SQL Server ">Sådan fungerer APPROX_COUNT_DISTINCT() i SQL Server </p> </a> </li> <li class="da_flexstart"> <i></i> <a href="https://da.sqldat.com/fds/wtl/1007014450.html"> <p class="datextoverer" title="MySQL CHAR() vs T-SQL CHAR():Hvad er forskellen? ">MySQL CHAR() vs T-SQL CHAR():Hvad er forskellen? </p> </a> </li> <li class="da_flexstart"> <i></i> <a href="https://da.sqldat.com/fds/lir/1007019726.html"> <p class="datextoverer" title="Reducer SQL Server-licensomkostninger">Reducer SQL Server-licensomkostninger</p> </a> </li> </ol> </section> </section> </section> <footer> <section class="da_container da_flexbetween dafooter_info da_flexalign"> <a href="https://da.sqldat.com" class="dabottom_logo"> <img src="http://www.sqldat.com/css/img/logo.svg" alt=""> </a> <span class="da_flexstart"> © COPYRIGHT <a href="https://da.sqldat.com">http://da.sqldat.com</a> ALLE RETTIGHEDER FORBEHOLDES </span> </section> </footer> <script language='javascript' src='http://www.sqldat.com/css/ad/c.js'></script> </body> </html>