Modifier des données de votre base de données :


Nous allons vous expliquer à travers ce nouveau tutorial comment modifier des données dans une base de données Mysql.
Reprenons notre exemple de la table "clients" :

Table clients :

Imaginons que Dupont Maxime se soit tromp lors de son inscription et qu'il voudrait changer de pays.
Il voudrait changer Pays 3 en Pays 1.

Pour cela nous allons utiliser la requte UPDATE de Mysql.

<?php

//Connexion au serveur et à la base de données.
mysql_connect("localhost", "root", "")or die("La connexion au serveur a echoué");
mysql_select_db("tutoplus")or die("La connexion à la base de données a echoué");
?>
<html>
<head>
<title>
Modifier le pays de Dupont Maxime</title>
</head>
<body>

<?php
// Requête pour modifier le pays de Dupont Maxime.
$req = "UPDATE clients SET pays='Pays 1' WHERE nom='Dupont' ";
// Si il y a une erreur
$result = mysql_query($req) or die ("Exécution de la requête impossible");
// On ferme la connexion.
mysql_close();
?>
Le Pays de Dupont Maxime vient d'etre modifi.
</body>
</html>

Analysons cette requte :
UPDATE clients = On met à jour la table clients
SET pays='Pays 1' = On definit les valeurs que l'on souhaite modifier. Si nous voulons modifier plusieurs valeurs, on les spare avec des virgules ( SET pays='Pays 1', prenom='Maxime')
WHERE nom='Dupont'
= Cette clause nous permet de slectionner le nom de la personne modifier, sans elle nous modifierons les pays de toute la table. Nous aurions trs bien pu mettre autre chose que le nom (id='2' ou bien prenom='Maxime').

Maintenant pour mettre en application notre travail, nous allons crer deux pages :
affichage_des_clients.php = Cette page affichera les clients de notre table que l'on pourra slectionner pour certaines modifications (Voir le cours pour afficher les donnes).
modification_client.php = La mme que celle d'inscription, qui reprendra les donnes du client selectionn en les affichant dans les champs correspondants.

 

Voici quoi ressemblera la page affichage_des_clients.php (cours afficher les donnes) :

Le code php associ cette page :

<?php
//Connexion au serveur et la base de donne.
mysql_connect("localhost", "root", "")or die("La connexion au serveur a echoué");
mysql_select_db("tutoplus")or die("La connexion à la base de données a echoué");
?>
<html>
<head>
<title>
Affichage_des_clients</title>
</head>
<body>

<?php
// Lancement de la requte
$req = "SELECT * FROM clients";
// Si il y a une erreur
$result = mysql_query($req) or die ("Excution de la requete impossible");
// On recupre le resultat sous la forme d'un tableau
echo '<form id="form1" name="form1" method="post" action="">
<p align="center">Selectionner le nom du client &agrave; modifier : </p>
<table width="450" border="0" align="center">
<tr>
<td width="50">Id :</td>
<td width="166">Nom :</td>
<td width="108">Prenom :</td>
<td width="108">Pays :</td>
</tr>'
;
// On crer une boucle pour extraire toutes les donnes
while ($donnee = mysql_fetch_array($result)) {
// On affiche les rsultats dans notre tableau
echo '<tr>
<td width="50">'
.$donnee['id'].'</td>
<td width="166"><a href="modification_client.php?id='
.$donnee['id'].'">'.$donnee['nom'].'</a></td>
<td width="108">'
.$donnee['prenom'].'</td>
<td width="108">'
.$donnee['pays'].'</td>
</tr>'
;
// On ferme notre boucle
}
// On ferme notre tableau
echo '</table>
</form>'
;
// On ferme la connexion
mysql_close ();
?>
</body>
</html>

Et pour finir, voici la page modification_client.php :

Nom
Prénom
Pays
 

Son code php :

<?php
//Connexion au serveur et la base de donnes.
mysql_connect("localhost", "root", "")or die("La connexion au serveur a echoué");
mysql_select_db("tutoplus")or die("La connexion à la base de données a echoué");

// Lancement de la requte
$requete = "SELECT * FROM clients WHERE id='".$_GET['id']."'";
// Si il y a une erreur
$result = mysql_query($req) or die ("Excution de la requete impossible");
// On extrait nos donnes que l'on place dans des variables
$donnee = mysql_fetch_array($result);
$nom = $donnee['nom'];
$prenom = $donnee['prenom'];
$pays = $donnee['pays'];

// On teste si le formulaire a t soumis.
if (isset($_POST['Modifier']))
{
// On verifie que les champs ne soit pas vide.
if ((isset($_POST['nom'])) && !empty($_POST['nom']) && (isset($_POST['prenom']) && !empty($_POST['prenom'])))
{

// Requte pour modifier notre client par rapport son id que l'on recupre dans l'adresse.
$req = "UPDATE clients SET nom='".$_POST['nom']."', prenom='".$_POST['prenom']."', pays='".$_POST['pays']."' WHERE id='".$_GET['id']."' ";
mysql_query($req) or die ("Excution de la requte impossible");

// On ferme la connexion.
mysql_close();
// On se redirige vers la page affichage_des_clients.php
header('Location: affichage_des_clients.php');
exit();
}
// Si les champs sont vides.
else {
echo 'Les champs ne sont pas renseigns';
}
}

?>
<html>
<head>
<title>
Modification client</title>
</head>
<body>

<form name="form1" method="post" action="">
<table width="295" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width=
"99">Nom : </td>
<td width=
"196"><input type="text" name="nom" id="nom" value="<?php echo "$nom"; ?>"/>
</td>
</tr>
<tr>
<td>
Prenom : </td>
<td>
<input type="text" name="prenom" id="prenom" value="<?php echo "$prenom"; ?>"/></td>
</tr>
<tr>
<td>
Pays : </td>
<td>
<select name="pays">
<option>
Pays 1</option>
<option>
Pays 2</option>
<option>
Pays 3</option>
</select>

</td>
</tr>
<tr>
<td>
&nbsp;</td>
<td>
<div align="right">
<input type="submit" name="Modifier" value="Modifier" />
</div></td>
</tr>
</table>
</form>
</body>
</html>

Le mieux serait quand mme que ce soit le client qui modifie lui mme ces informations, de son espace membre par exemple, ce qui rendrai votre site beaucoup plus autonome.
Pour plus d'informations ce sujet, rendez-vous sur les sessions en php.

 

 
 
 
  Visiteurs : 135144
Aujourd'hui : 27
En ligne : 5
 

 
 
 

Copyright © 2007-2009 TutoPlus.Com- Tous droits réservés.
Partenaires : Achat de mots-clés