Renvoie les microsecondes pour le temps courant
Le mot clé UPDATE est employé pour modifier des données dans une table.
Jusqu'à présent, vous avez appris comment mettre les informations dans votre base de données MySQL, afficher les informations et choisir quelles informations vous souhaitez afficher. Dans ce chapitre je vais vous montrer comment mettre à jour votre base de données c'est-à-dire modifier les informations dans la base de données.
La mise à jour de données dans une base de données se fait avec
Le mot clé UPDATE
le mot clé UPDATE est employé pour mettre à jour ou editer les enregistrements existants dans une table.
Syntaxe
UPDATE nom_table SET colonne1=valeur1, colonne2=valeur2,...
WHERE some_colonne=some_value
Note : Notez la clause WHERE dans la syntaxe de UPDATE. la clause WHERE spécifie l’enregistrement qui devrait être mis à jour.
Si vous omettez la clause WHERE, tous les enregistrements seront mis à jour !
Pour apprendre plus au sujet du SQL, visitez SVP notre cours d'instruction de SQL.
Exemple
L'exemple suivant met à jour quelques données dans la table visiteurs que nous avons créé lors d’un chapitre précédent., on va changer l’age de
Dubois caterine qui est de 27 ans en 36 ans
Exemple : Copier le code
<html lang="fr"> <head> <meta charset="UTF-8"> <title>MySQL UPDATE </title> </head> <body> <?PHP $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mabase"; //Créer la connexion $conn = new mysqli($servername, $username, $password, $dbname); //Vérifier la connexion if ($conn->connect_error) { die("connexion impossible: " . $conn->connect_error); } $sql= "UPDATE visiteurs SET Age = '36' WHERE nom = 'Dubois' AND prenom = ' caterine '"; if ($conn->query($sql) === TRUE) { echo "Enregistrement mis à jour avec succès"; } else { echo "Erreur de mise à jour de l'enregistrement : " . $conn->error; } $conn->close(); ?> </body> </html>
Code exemple mysqli procédural
<html lang="fr"> <head> <meta charset="UTF-8"> <title>MySQL UPDATE </title> </head> <body> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mabase"; // Créer une connexion $conn = mysqli_connect($servername, $username, $password, $dbname); // Vérifier la connexion if (!$conn) { die("La Connexion a échoué: " . mysqli_connect_error()); } $sql = "UPDATE visiteurs SET Age = '36' WHERE nom = 'Dubois' AND prenom = ' caterine '"; if (mysqli_query($conn, $sql)) { echo "Enregistrement mis à jour avec succés"; } else { echo "Erreur de la mise à jour de l'enregistrement: " . mysqli_error($conn); } mysqli_close($conn); ?> </body> </html>
Code exemple PDO
<html lang="fr"> <head> <meta charset="UTF-8"> <title>MySQL UPDATE </title> </head> <body> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mabase"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE visiteurs SET Age = '36' WHERE nom = 'Dubois' AND prenom ='caterine'"; // Préparer la déclaration $stmt = $conn->prepare($sql); // executer la requête $stmt->execute(); // Message du succés echo $stmt->rowCount() . " enregistrement mis à jour avec succés"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?> </body> </html>
en rvenons à notre tutorial, que nous poursuivant depuis le début de ce didacticiel : le script pour la gestion de contact
Dans l'avant dernier chapitre, j'ai expliqué comment créer un lien pour chaque enregistrement pour pointer vers votre script de mise à jour. En utilisant la variable $id, vous exportez les liens qui passeraient l'ID correct au script de sorte qu'il peut mettre à jour la base de données. En utilisant cela, vous pouvez alors créer le script de mise à jour, qui aura en fait deux sections.
Ici je vais réécrire le script de la page d’affichage de la liste de mes contactes d’une autre façon pour qu’elle contient à la fois la liste et qu’elle permet de faire des changements dans les informations d’un contact.
Ce qui va nous permettre de réaliser des mises à jour des contacts.
A cette fin, elle contient un tableau html avec des formulaires, qui serrent à éditer les contacts en rectifiant ou ajoutant des informations au contact.
Seulement on ne peut éditer qu’un seul contact à la fois.
Voici le code ci-après :
Exemple : Copier le code
<!DOCTYPE html> <html> <style> input{width:70px;} } .id{width:10px;} } </style> <body> <h1>liste de mes contacts</h1> <p>Vous pouvez modifier les informations des contacts et cliquez sur valider pour enregistrer les modifications.</p> <p>Ne modifiez qu'un seul contact à la fois.</p> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mabase"; // Créer une connexion $conn = mysqli_connect($servername, $username, $password, $dbname); // Vérifier la connexion if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $demande="SELECT * FROM contacts"; $result = $conn->query($demande); $num=mysqli_num_rows($result); if ($num > 0) { /*Affichage des données résultats de chaque ligne dans une table html*/ echo " <table> <tr><th>id</th><th> Nom</th><th> Prénom </th><th>Téléphone </th><th>Mobile </th><th>Fax </th><th> Email</th><th> Site web</th><th> </th></tr>"; $i=1; while($row = mysqli_fetch_assoc($result)) { $id=$row["id"]; $prenom=$row["prenom"]; $nom=$row["nom"]; $phone=$row["telephone"]; $mobile=$row["mobile"]; $fax=$row["fax"]; $email=$row["email"]; $web=$row["web"]; echo "<tr> <td style='width:20px'><form action='mise-a-jour.php' method='post' name='e".$i."'><input type='text' name='co_id' value='" . $id. "' style='width:20px'></td> <td><input type='text' name='co_nom' value='" . $nom. "'></td> <td><input type='text' name='co_prenom' value='" . $prenom."'></td> <td><input type='text' name='co_phone' value='" . $phone."'></td> <td><input type='text' name='co_mobile' value='" . $mobile."'></td> <td><input type='text' name='co_fax' value='" . $fax."'></td> <td><input type='text' name='co_email' value='" .$email."'></td> <td><input type='text' name='co_web' value='" .$web."'></td> <td><input type='Submit' value=' Valider ' name='S".$i."'></form></td> </tr>"; $i++; } echo "</table>"; } else { echo "0 results"; } mysqli_close($conn); ?><br> <button onclick="location.href='insert.php'">Ajouter un contact </button> </body> </html>
Comme vous pouvez le constater, ce code va afficher des formulaires, un pour chaque contact, mais au lieu d'avoir des cases vides comme sur le formulaire pour insérer un nouvel enregistrement, ceux-ci ont déjà les informations actuelles de la base de données inséré dedans. Cela est beaucoup plus efficace pour insérer les modifications nécessaires à la mise à jour de la base de données.
Pour mettre à jour la base de données, il suffit de cliquer sur le bouton valider après avoir changé ou ajouter les informations voulues
La prochaine étape est la page « mise-a-jour.php » qui contient un script avec la commande qui va effectivement mettre à jour la base de données. C'est une opération simple et implique juste une nouvelle requête pour la base de données comme suit:
$query="UPDATE contacts SET prenom='$prenom', nom='$nom', telephone='$phone', mobile='$mobile', fax='$fax', email='$email', web='$web' WHERE id='$id'";
Cette requête indique à la base de données de mettre à jour la table contacts avec l'ID égale à la valeur stockée dans $id (qui comme vous pouvez le voir sur le formulaire sur la page affichge a été défini comme l'id de l'enregistrement, que nous mettons à jour) et à définir les champs suivants les valeurs spécifiées (qui ont été configurés en utilisant le formulaire sur la page affichage).
Cette requête pourrait ensuite être intégrée dans un script simple que voici:
Exemple : Copier le code
<html lang="fr"> <head> <meta charset="UTF-8"> <title>MySQL update </title> </head> <body> <?PHP $id=$_POST['co_id']; $prenom=$_POST['co_prenom']; $nom=$_POST['co_nom']; $phone=$_POST['co_phone']; $mobile=$_POST['co_mobile']; $fax=$_POST['co_fax']; $email=$_POST['co_email']; $web=$_POST['co_web']; $servername = "localhost"; $username = "root"; $password = ""; $dbname = "mabase"; //Créer la connexion $conn = new mysqli($servername, $username, $password, $dbname); //Vérifier la connexion if ($conn->connect_error) { die("connexion impossible: " . $conn->connect_error); } $sql = "UPDATE contacts SET prenom='$prenom', nom='$nom', telephone='$phone', mobile='$mobile', fax='$fax', email='$email', web='$web' WHERE id='$id'"; if ($conn->query($sql) === TRUE) { echo "Enregistrement mis à jour avec succès"; } else { echo "Erreur de mise à jour de l'enregistrement : " . $conn->error; } $conn->close(); ?> <p><button onclick="location.href='afficher.php'">retourner à la page affichage de la liste de mes contacts</button></p> </body> </html>
Ce code devrait mettre à jour la base de données et donner à l'utilisateur une confirmation.