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

PHP CRUD Crea, modifica, aggiorna ed elimina post con il database MySQL

Creare, modificare, aggiornare ed eliminare i contenuti di un sito Web è ciò che rende dinamico il sito. Questo è ciò che faremo in questo post.

Un utente che visita il nostro sito potrà creare post che verranno salvati in un database mysql, recuperare i post dal database e visualizzarli sulla pagina web. Ogni post verrà visualizzato con un pulsante di modifica ed eliminazione per consentire all'utente di aggiornare i post e di eliminarli.

Innanzitutto, crea un database chiamato crud. Nel database crud, crea una tabella denominata info. La tabella delle informazioni dovrebbe avere le seguenti colonne:

  • id - int(11)

  • nome - varchar(100)
  • indirizzo - varchar(100)

Sì! Solo due campi. Sto cercando di mantenere le cose semplici qui. quindi, passiamo al passaggio successivo.

Crea un file chiamato index.php e incollaci il seguente codice:

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

Se salvi e apri il sito sul tuo browser, ottieni qualcosa del genere:

Non sembra la forma migliore del mondo, giusto? Risolviamolo. Aggiungi questa riga direttamente sotto il tag nella sezione head del tuo file index.php:</P> <pre><code><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p> Questo è il link per caricare lo stile dal file del foglio di stile. Creiamo il file styles.css e aggiungiamo questo codice di stile al suo interno.</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> Ora controlliamo di nuovo il nostro modulo nel browser:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463381.png" /></P> <p> Va meglio! </P> <p> Di solito mi piace separare il più possibile il mio codice HTML dal mio codice PHP. Considero questa buona pratica. In questa nota, creiamo un altro file chiamato php_code.php in cui implementiamo tutte le funzionalità php come la connessione al database, query del database e simili.</P> <p> Quindi apri php_code.php e incollaci il seguente codice:</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> Ora includi questo file nella parte superiore (la prima riga) del tuo file index.php. Così:</P> <pre><code><?php include('server.php'); ?></code></pre> <p> A questo punto, tutto ciò che fa questo codice è connettersi al database, inizializzare alcune variabili e salvare i dati inviati dal modulo al database nelle informazioni che abbiamo creato in precedenza. Questa è solo la parte CReate di CRUD. Procediamo con gli altri.</P> <p> Ora visita di nuovo il tuo file index.php e aggiungi questo codice direttamente sotto il tag <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> Questo codice visualizza un messaggio di conferma per informare l'utente che è stato creato un nuovo record nel database. </P> <p> Per recuperare i record del database e visualizzarli nella pagina, aggiungi questo codice immediatamente sopra il modulo di input:</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> Creiamo un nuovo record e vediamo se funziona:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463338.png" /></P> <p> ..e voilà!! Funziona perfettamente!</P> <p> Ora passiamo alla modifica. Nella parte superiore del tuo file index.php (subito dopo l'istruzione include) aggiungi il seguente codice:</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> Quando si modifica un record di database, è necessario inserire i vecchi valori nel modulo in modo che possano essere modificati. Per fare ciò, modifichiamo i nostri campi di input sul modulo e impostiamo quei valori presi dal database ($nome, $indirizzo) come valori sul <strong>valore</strong> attributo dei campi del modulo.</P> <p> Aggiungi anche un campo nascosto per contenere l'id del record che aggiorneremo in modo che possa essere riconosciuto nel database in modo univoco dal suo ID. Questo lo spiega meglio:</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> Ricorda che è tutto nell'input <form>.</P> <p> Ora se facciamo clic sul pulsante di modifica su un determinato record dal database, i valori verranno compilati nel modulo e saremo in grado di modificarli. Poiché stiamo modificando sullo stesso modulo in cui stiamo creando, dobbiamo inserire una condizione che determini il pulsante appropriato da visualizzare. Ad esempio, durante la modifica, visualizziamo il pulsante di aggiornamento sul modulo e durante la creazione, visualizziamo il pulsante di salvataggio. Lo facciamo utilizzando l'<strong>aggiornamento </strong> variabile che è booleana. Quando l'aggiornamento è vero, viene visualizzato il pulsante di aggiornamento e se è falso, viene visualizzato il pulsante di salvataggio.</P> <p> Sostituisci il pulsante di salvataggio sul modulo in questo modo:</P> <p> Sostituisci ..</P> <pre><code><button class="btn" type="submit" name="save" >Save</button></code></pre> <p> con...</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> Ora, se eseguiamo questo sul browser e facciamo clic sul pulsante di modifica, otteniamo questo:</P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463388.png" /></P> <p> Ora puoi vedere che viene visualizzato il pulsante di aggiornamento. Aggiungiamo il codice che verrà eseguito quando si fa clic su questo pulsante.</P> <p> Apri il file php_code.php e aggiungi questo codice sul pulsante:</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> Ora modifica i valori nel modulo e fai clic sul pulsante di aggiornamento. </P> <p> <img src="http://www.sqldat.com/article/uploadfiles/202205/2022051317463390.png" /></P> <p> Ottimo!</P> <p> Un'ultima cosa:cancellare i record. Basta aggiungere questo codice alla fine del tuo file php_code.php e sei a posto:</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> Se fai clic sul pulsante Elimina, il record viene eliminato dal database e viene visualizzato il messaggio proprio come le altre azioni.</P> <p> </P> <h3> </h3> <h2>Conclusione</h2> <p> Questo ci porta alla fine di questo tutorial. Spero sia stato utile e valga la pena dedicare il tuo tempo. Sono molto onorato della tua pazienza nell'aver seguito tutto questo fino alla fine. Se ti piace questo tutorial, condividilo con i tuoi amici facendo clic su una delle icone dei social media qui sotto. Non dimenticare di controllare i miei altri tutorial su questo sito. </P> <p> Grazie</P> <br> </section> <div class="youwvbdiv78"></div> </article> <div class="divbywoerm32"></div> <section id="turn-page" class="flexcenter_itre"> <em class="divbeoemowe12"></em> <div class="page up flexalignitou"> <span class="divbowue45"></span> <i class="prev"></i> <a class='LinkPrevArticle' href='http://it.sqldat.com/mks/kil/1004019451.html' >Sistema completo di registrazione degli utenti tramite PHP e database MySQL </a> </div> <div class="page down flexalignitou"> <a class='LinkNextArticle' href='http://it.sqldat.com/mks/kil/1004019453.html' >Come caricare e scaricare file PHP e MySQL </a> <i class="next"></i> </div> </section> <div class="ad5"> <script language='javascript' src='http://www.sqldat.com/css/ad/2.js'></script> </div> <section class="itlist2"> <ul class="it_flexbetween"> <li class="img_itarticle it_flexbetween"> <div class="itibox"> <img src='http://www.sqldat.com/article/uploadfiles/202205/2022051210383660_S.jpg' width='300' height='220' border='0'> </div> <section> <a href="https://it.sqldat.com/mks/kil/1004016077.html"> <p class="row itrow-3">Migrazione di un database Oracle a MySQL su AWS, parte 1 </p> </a> </section> </li> <li class="img_itarticle it_flexbetween"> <div class="itibox"> <img src='http://www.sqldat.com/article/uploadfiles/202205/2022051213570872.png' width='300' height='220' border='0'> </div> <section> <a href="https://it.sqldat.com/mks/cab/1004016499.html"> <p class="row itrow-3">Come ottenere la conformità PCI per MySQL e MariaDB con ClusterControl - The Replay </p> </a> </section> </li> <li class="img_itarticle it_flexbetween"> <div class="itibox"> <img src='http://www.sqldat.com/article/uploadfiles/202205/2022051310503217_S.png' width='300' height='220' border='0'> </div> <section> <a href="https://it.sqldat.com/mks/trs/1004018863.html"> <p class="row itrow-3">7 buone abitudini tecnologiche che tutti i datori di lavoro dovrebbero adottare </p> </a> </section> </li> <li class="img_itarticle it_flexbetween"> <div class="itibox"> <img src='http://www.sqldat.com/article/uploadfiles/202205/2022051109492048_S.png' width='300' height='220' border='0'> </div> <section> <a href="https://it.sqldat.com/mks/sqr/1004001744.html"> <p class="row itrow-3">Che cos'è BETWEEN Logical Operator in SQL Server - Tutorial SQL Server / TSQL Parte 124 </p> </a> </section> </li> </ul> </section> </section> <aside class="right"> <section class="share"> <div class="share_ititle"> <i></i> <h2>Condividere</h2> </div> <ul class="share_ico it_flexstart"> <li><a class="facebook" title="Share on Facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=http://it.sqldat.com/mks/kil/1004019452.html"></a></li> <li><a class="twitter" title="Tweet" target="_blank" href="https://twitter.com/intent/tweet?source=http://it.sqldat.com/mks/kil/1004019452.html&text=PHP CRUD Crea, modifica, aggiorna ed elimina post con il database MySQL:http://it.sqldat.com/mks/kil/1004019452.html"></a></li> <li><a class="linked-in" title="Share on LinkedIn" target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=http://it.sqldat.com/mks/kil/1004019452.html&title=PHP CRUD Crea, modifica, aggiorna ed elimina post con il database MySQL&summary=&source=http://it.sqldat.com/mks/kil/1004019452.html"></a></li> <li><a class="print" title="Print" target="" href="javascript:window.print && window.print();"></a></li> </ul> </section> <section class="type_irtlist"> <ol> <li><a class='childclass' href='http://it.sqldat.com/mks/bze/' target="_self">Database</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/kil/' target="_self">Mysql</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/hfe/' target="_self">Oracle</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/sqr/' target="_self">Sqlserver</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/pnl/' target="_self">PostgreSQL</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/trs/' target="_self">Access</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/ece/' target="_self">SQLite</a></li>  <li><a class='childclass' href='http://it.sqldat.com/mks/cab/' target="_self">MariaDB</a></li> </ol> </section> <section class="itlist1 article1_list"> <ul class="it_flexbetween"> <li> <section class="flexalignitou"> <div class="itibox"> <img src='http://www.sqldat.com/article/uploadfiles/202205/2022051415144271_S.png' width='300' height='220' border='0'> </div> <a href="https://it.sqldat.com/mks/bze/1004020414.html"> <p class="row itrow-3"> Istruzioni generali per la creazione e la distribuzione del server di database </p> </a> </section> <ol> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004000459.html"> <p class="row itrow-2"> 10 suggerimenti utili sull'ottimizzazione delle prestazioni di MySQL </p> </a> </li> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004001971.html"> <p class="row itrow-2"> Devo usare il tipo di dati datetime o timestamp in MySQL? </p> </a> </li> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004002738.html"> <p class="row itrow-2"> Come sollevare un errore all'interno di una funzione MySQL </p> </a> </li> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004003752.html"> <p class="row itrow-2"> Come preparare la dichiarazione per la query di aggiornamento? </p> </a> </li> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004002310.html"> <p class="row itrow-2"> Restituisce il risultato predefinito per il valore IN indipendentemente </p> </a> </li> <li class="it_flexstart"> <a href="https://it.sqldat.com/mks/kil/1004002437.html"> <p class="row itrow-2"> Come funzionano gli indici MySQL? </p> </a> </li> </ol> </li> </ul> </section> </aside> </section> <footer> <section class="it_container it_flexbetween itfooter_info flexalignitou"> <a href="https://it.sqldat.com" class="itbottom_logo"> <img src="http://www.sqldat.com/css/img/logo.svg" alt=""> </a> <span class="it_flexstart"> © DIRITTO D'AUTORE <a href="https://it.sqldat.com">http://it.sqldat.com</a> TUTTI I DIRITTI RISERVATI </span> </section> </footer> <script language='javascript' src='http://www.sqldat.com/css/ad/c.js'></script> </body> </html>