oujood.com

PHP MySQL Update la mise à jour de la base de données en utilisant mysqli et PDO

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.

chercher |

PHP MySQL Mise à jour des données d’une table

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 avec MySQLi orienté objet

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>


Exemple avec MySQLI procédural

Code exemple mysqli procédural

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

Exemple avec PDO

Code exemple PDO

  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";

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>

Le Script de mise à jour de la base de données gestion des contacts

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.

Affichage d'une Page de mise à jour de la base de données contacts

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

Mise à jour de la base de données

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.


Par carabde 20 Aout 2014 - mis à jour 29/05/2022

Voir aussi nos tutoriel :

fonction microtime

Renvoie les microsecondes pour le temps courant

fonction gmmktime

Retourne le timestamp UNIX d'une date GMT

Balise details

Définit les détails supplémentaires que l'utilisateur peut afficher ou cacher