Formulaire pour modifier une table php/mysql
Ulrich7
-
-
-
Bonjour, voici mon problème :
Je souhaite que l'utilisateur puisse modifier ses informations sur son profil :
J'ai créer deux pages en php:
La première comporte un formulaire, la seconde envois à la bdd "tu remplace ce qui existe déjà par ce qu'a taper l'utilisateur dans le formulaire"
Je n'ai pas de parse error ni rien, mais la table n'est pas modifiée. Voici le code :
modif_profil.php :
modif_ok.php :
Je souhaite que l'utilisateur puisse modifier ses informations sur son profil :
J'ai créer deux pages en php:
La première comporte un formulaire, la seconde envois à la bdd "tu remplace ce qui existe déjà par ce qu'a taper l'utilisateur dans le formulaire"
Je n'ai pas de parse error ni rien, mais la table n'est pas modifiée. Voici le code :
modif_profil.php :
<?php include('config.php') ?> // ça c'est pour me connecter à la bdd <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" media="screen" type="text/css" title="css" href="css.css" /> <title>Bienvenue sur mon site</title> </head> <body> <div id="page"> <p> <form action="modif_ok.php" method="post"> Veuillez remplir ce formulaire pour modifier vos informations:<br><br> <label for="pays">Pays</label> <input type="text" name="pays" value="<?php if(isset($_POST['pays'])){echo htmlentities($_POST['pays'], ENT_QUOTES, 'UTF-8');} ?>"><br> <br> <input type="submit" value="Envoyer" /> </form> </p> </div> <div id="basdepage"> <!-- Ici ce qui est affiché en bas de la page. --> </div> </body> </html>
modif_ok.php :
<?php include('config.php') ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" media="screen" type="text/css" title="css" href="css.css" /> <title>Bienvenue sur mon site</title> </head> <body> <div id="page"> <p> <?php if(isset($_SESSION['username'])) // je vérifie que l'utilisateur est connecté { ?> <?php $pays = $_POST['pays']; // je transforme les modifications du formulaire en variables $username = $_SESSION['username']; // lancement de la requête $sql ='UPDATE users SET pays = "$pays" WHERE username = "$username"'; // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on ferme la connexion à la base mysql_close(); ?> <?php } else { echo "Probleme"; // si ya un blem' ce message s'affiche } ?> </p> </div> <div id="basdepage"> <!-- Ici ce qui est affiché en bas de la page. --> </div> </body> </html>
A voir également:
- Formulaire pour modifier une table php/mysql
- Whatsapp formulaire opposition - Guide
- Modifier dns - Guide
- Table ascii - Guide
- Table des matières word - Guide
- Modifier liste déroulante excel - Guide
3 réponses
Je pense que le problème vient de ta requête SQL. Tu as écris :
et il faudrait
Le souci est qu'en PhP, on peut utiliser les simples et les doubles quote pour setter une string. La différence entre la simple quote et la double c'est que lorsqu'il y a des variables dans une string délimitée avec des simple quote, le langage va interpréter la variable pour insérér son contenu dans la string. A contrario, avec les simple quote, c'est écrit "tel-quel", il n'y a pas d'interprétation de la variable.
$sql ='UPDATE users SET pays = "$pays" WHERE username = "$username"';
et il faudrait
$sql ="UPDATE users SET pays = '".$pays."' WHERE username = '".$username."'';
Le souci est qu'en PhP, on peut utiliser les simples et les doubles quote pour setter une string. La différence entre la simple quote et la double c'est que lorsqu'il y a des variables dans une string délimitée avec des simple quote, le langage va interpréter la variable pour insérér son contenu dans la string. A contrario, avec les simple quote, c'est écrit "tel-quel", il n'y a pas d'interprétation de la variable.