PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-09-2014 17:06:32

zohit
Membre
Inscription : 27-09-2014
Messages : 2

update postgresql rows using php

bonjour s'il vous plait je veux modifier les champs d'une table sur postgresql le resultat me donne Connexion OK et modification avec succés mais les champs dans latable d bdd ne changent pas sv aidez moi
voici mon code dans une page j'ai
<?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 :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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 :&nbsp;&nbsp;&nbsp; </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 : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <td> </td> <td><input name="submit2" type="submit" class="btn_submit_vert" value="Modifier"/> </td>
     </tr>

  </form>

Hors ligne

#2 27-09-2014 19:03:39

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : update postgresql rows using php

Saluton,

Utiliser PDO, c'est excellent, encore faut-il se donner la peine d'essayer d'en comprendre le mécanisme.

Au vu de ton code, il est notoire que ce n'est pas le cas.

La méthode PDO::prepare attend, comme arguments, la chaîne de la requête SQL avec des zones nommées ou marquées et un éventuel tableau de paramètres de configuration du comportement de PDO.

Cette méthode retourne un objet de type PDOStatement dont la méthode PDOStatement::execute attend comme argument un tableau associatif contenant les zones nommés ou marquées définies avec PDO::prepare et/ou leurs valeurs associées.

Un simple coup d'œil aux exemples de la documentation t'aurait utilement mis sur la bonne piste.

Doc MySQL pour PDO::prepare a écrit :

Examples ¶

Example #1 Prepare an SQL statement with named parameters
<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Example #2 Prepare an SQL statement with question mark parameters
<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 28-09-2014 22:18:59

zohit
Membre
Inscription : 27-09-2014
Messages : 2

Re : update postgresql rows using php

merci bcp pour votre reponse
voila maintenant j'ai changé ces lignes mais je reçois une alerte  erreur de modification sad je sais pas prk
$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>";
      }

Hors ligne

Pied de page des forums