Vous n'êtes pas identifié(e).
Pages : 1
bonjour ;
s'il vous plait j'ai un probleme je viens de modifier les champs dans bdd postgresql ,en cliquant sur modifier, le resultat me donne connexion OK , modification avec succés mais rien ne change dans ma bdd , aidez moi svp voila j'ai séparé en 2 pages une contient
<?php
session_start();
try
{
$bdd = new PDO("pgsql:host=localhost;dbname=stage", "postgres", "123");
echo 'Connexion OK';
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$id = $_SESSION['id'];
$nom_user = $_POST['nom_user'];
$ville = $_POST['ville'];
$region_user = $_POST['region_user'];
$etat = $_POST['etat'];
$couleur = $_POST['couleur'];
$reponse = $bdd->prepare("update projets set nom_user = '$nom_user' , ville = '$ville' , region_user = '$region_user' ,etat = '$etat', couleur = '$couleur' where id_projet = $id ");
if($reponse) { echo "<script>
alert('Modification avec succéq!! ')
</script>";
}
else {
echo "<script>
alert('Erreur de modification! ')
</script>";
}
$reponse ->execute(array());
//header('location:../admin.php');
?>
****************************************
et dans l'autre page j'ai
<?php
session_start();
try
{
$bdd = new PDO("pgsql:host=localhost;dbname=stage", "postgres", "123");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$id = $_GET['id'];
$_SESSION['id'] = $id;
$reponse = $bdd->prepare("SELECT * FROM projets where id_projet='$id'");
$reponse->execute();
$tab = $reponse->fetch();
?>
<form name="f1" method="POST" action="script/updateprojet.php">
<tr>
<td> Nom : </td> <td> <input name="nom_user" style="width:160px;" type='text' id="name" value="<?php echo $tab['nom_user']; ?>" placeholder="Enter le nom" maxlength="20" class='float'/> </td>
</tr><br></br>
<tr>
<td> VILLE : </td> <td><input name="ville" style="width:160px;" type='text' id="name" value="<?php echo $tab['ville']; ?>" placeholder="Enter la ville" maxlength="20" class='float'/> </td>
</tr>
<tr><br></br>
<td> REGION : </td> <td><input name="region_user" style="width:160px;" type='text' id="name" value="<?php echo $tab['region_user']; ?>" placeholder="Enter la region" maxlength="20" class='float'/> </td>
</tr><br></br>
<tr>
<td> ETAT : </td> <td><input name="etat" style="width:160px;" type='text' id="name" value="<?php echo $tab['etat']; ?>" placeholder="Enter l'auteur" maxlength="20" class='float'/> </td>
</tr><br></br>
<tr>
<td> COULEUR : </td> <td><input name="couleur" style="width:160px;" type='text' id="name" value="<?php echo $tab['couleur']; ?>" placeholder="Enter la ville" maxlength="20" class='float'/> </td>
</tr><br></br>
<tr>
<td> </td> <td><input name="submit2" type="submit" class="btn_submit_vert" value="Modifier"/> </td>
</tr>
</form>
Hors ligne
Bonjour,
Votre test ne vérifie que si la requête est préparée, pas si elle est exécutée avec succès (la modification se fait au moment de l'appel ->execute). De plus, si vous utilisez des requêtes préparées, vous devriez passer les paramètres au moment de l'exécution et non de la préparation, cela permet de mieux gérer les problème d'échappement et donc d'injection SQL. Je ne connais pas PDO, mais peut être qu'il est nécessaire de valider la transaction (commit) explicitement. Vous devriez regarder du côté de la documentation de PDO.
Julien.
https://rjuju.github.io/
Hors ligne
voila maintenant j'ai changé ces lignes mais je reçois erreur de modification
$sth= $bdd->prepare("update projets set nom_user = :nom_user , ville = :ville , region_user = :region_user ,etat = :etat, couleur = :couleur where id_projet = :id ");
$retour = $sth->execute(array(':nom_user'=>$nom_user, ':ville'=>$ville, ':region_user'=>$region_user, ':etat'=>$etat, ':couleur'=>$couleur));
if($retour) { echo "<script>
alert('Modification avec succès!! ')
</script>";
}
else {
echo "<script>
alert('Erreur de modification! ')
</script>";
}
Dernière modification par zohit (28/09/2014 23:05:46)
Hors ligne
Après etat, il y a un point-virgule à la place d'une virgule.
Guillaume.
Hors ligne
ouiii merci bcp , j'ai fais attention au ;
Hors ligne
Pages : 1