Modifier une table
Modifier la table "clients"
Formulaire pour modifier une table MySQL avec la librairie PDO
Pour cet exemple, on utilise le menu déroulant réalisé précédemment<script>
// Deux lignes pour l'analyseur de code ESLint dans Brackets
/* eslint no-unused-vars: 0*/
/* global window */
function fait_passer() {
"use strict";// Déclaration de variables obligatoire
// on récupère dans le champ idclient, la valeur du menu déroulant
// on aurais pu utiliser ici un window.getElementById(idclient).value
window.document.form1.idclient.value = window.document.form1.malistedenom.value;
window.document.form1.nom.style.display = "inline"; // apparait
if (window.document.form1.idclient.value === "") {
window.document.form1.nom.style.display = "none"; // apparait et disparait
}
}
</script>
<?php
// connexion à la base
$user = "root";
$pass = "";
$dnspdo = 'mysql:dbname=mabase;host=localhost;charset=utf8';
$bdd = new PDO($dnspdo, $user, $pass);
// Récupère deux champs de la table clients
$requete4 = 'SELECT id_client, nom_client FROM clients';
$resultat = $bdd->prepare($requete4);
$resultat->execute();
Formulaire pour MODIFIER des clients<br>
<form action="index.php?page=traitement-modif" method="post" name="form1">
Nom : <select name="malistedenom" onchange="fait_passer();">
<option value="" selected>Veuillez sélectionner un client</option>
<?php
while($ligne = $resultat->fetch()) {
echo "<option value='".$ligne['id_client']."'>".$ligne['nom_client']."</option>";
}
?>
</select>
<input type="text" name="nom" style="display:none;">
<input type="hidden" name="idclient">
<input type="submit" value="Modifier">
</form>
?>
Explication : c'est la fonction javascript fait_passer() qui fais passer le nom et l'identifiant du client dans les inputs, ce qui permet d'envoyer l'identifiant et le nom via la méthode POST
Fichier de traitement de modification d'une table MySQL avec la librairie PDO
// On récupère les infos envoyées en POSTif (isset($_POST['nom']) && !empty($_POST['nom'])){ $nom = $_POST['nom'];} else { $nom = "Inconnu";}
if (isset($_POST['idclient']) && !empty($_POST['idclient'])){ $idclient = $_POST['idclient'];} else { $idclient = "";}
// Modification des enregistrements
if (!empty($idclient)) {
$requete = "UPDATE clients SET nom_client='".$nom."' WHERE id_client='".$idclient."' LIMIT 1";
$resultat = $bdd->prepare($requete);
$resultat->execute();
}
// redirection pour affichage du résultat
header("Location: index.php?page=affichage-client");