Page 1 sur 1

Update mysql en pdo.

Posté : 22 mars 2011, 15:13
par prohand
Bonjour j'ai un problème avec pysql et pdo.
Je voudrais modifier les champs dans la base de donnée mais il me dit qu'il ne trouve pas mes champs.

Voici les deux fichiers :

modifmembres.php
<?php
include('config.php');
?>
<?php
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $id  = $_GET["id"] ;
$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
$sql=$connexion->query("SELECT *
            FROM membres
	    WHERE id = ".$id);// on va chercher le membres avec l'id qui se trouve dans l'url
$sql->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
if( $result = $sql->fetch() ) // on récupère la liste des membres
{
  ?>
  ?>
  <form name="modification" action="modifmembres2.php" method="POST">
  <input type="hidden" name="id" value="<?php echo($result->id) ;?>">
  <table border="0" align="center" cellspacing="2" cellpadding="2">
    <tr align="center">
      <td>Login</td>
      <td><input type="text" name="login" value="<?php echo($result->login) ;?>"></td>
    </tr>
    <tr align="center">
      <td>Mot De Passe</td>
      <td><input type="text" name="pwd" value="<?php echo($result->pwd) ;?>"></td>
    </tr>
    <tr align="center">
      <td>Sexe</td>
      <td><input type="text" name="sexe" value="<?php echo($result->sexe) ;?>"></td>
    </tr>
    <tr align="center">
      <td>Ville</td>
      <td><input type="text" name="ville" value="<?php echo($result->ville) ;?>"></td>
    </tr>
    <tr align="center">
      <td>Code Postal</td>
      <td><input type="text" name="codepostal" value="<?php echo($result->codepostal) ;?>"></td>
    </tr>
	<tr align="center">
      <td>Adresse Mail</td>
      <td><input type="text" name="mail" value="<?php echo($result->mail) ;?>"></td>
    </tr>
	<tr align="center">
      <td>Age</td>
      <td><input type="text" name="age" value="<?php echo($result->age) ;?>"></td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
</form>
<?php
  }//fin if 
  ?>
  </body>
</html>
Et modifmembres2.php
<?php
include('config.php');
$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
  //récupération des valeurs des champs:
  $login = $_POST["login"] ;
  $pwd = $_POST["pwd"] ;
  $sexe = $_POST["sexe"] ;
  $ville = $_POST["ville"] ;
  $codepostal = $_POST["codepostal"] ;
  $mail = $_POST["mail"] ;
  $age = $_POST["age"] ;  
  
 //récupération de l'identifiant de la personne:
$id         = $_POST["id"] ;

$connexion->SPDO->getInstance()->update("UPDATE membres
            SET login        = $login 
	          pwd     = $pwd
		  sexe    = $sexe
		  ville           = $ville
		  codepostal = $codepostal
		  mail = $mail
		  age = $age
           WHERE id = $id ");// on va chercher tous les membres

$requete = mysql_query($connexion);
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }


  
  ?>
Merci de votre aide.

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:17
par Mazarini
Bonjour,

A priori, il faut mettre des quotes pour les variables contenant des chaines de caractères.

Par exemple : set login = '$login'

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:22
par stealth35
pense à les gestions des erreurs : http://php.net/manual/fr/pdo.error-handling.php

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:32
par prohand
J'ai rajouter les ' ' mais pareil.

Voici le message d'erreur :

Code : Tout sélectionner

( ! ) Notice: Undefined index: login in C:\wamp\www\pages membres\modifmembres2.php on line 5 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: pwd in C:\wamp\www\pages membres\modifmembres2.php on line 6 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: sexe in C:\wamp\www\pages membres\modifmembres2.php on line 7 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: ville in C:\wamp\www\pages membres\modifmembres2.php on line 8 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: codepostal in C:\wamp\www\pages membres\modifmembres2.php on line 9 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: mail in C:\wamp\www\pages membres\modifmembres2.php on line 10 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: age in C:\wamp\www\pages membres\modifmembres2.php on line 11 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined index: id in C:\wamp\www\pages membres\modifmembres2.php on line 14 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Notice: Undefined property: PDO::$SPDO in C:\wamp\www\pages membres\modifmembres2.php on line 16 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0 ( ! ) Fatal error: Call to a member function getInstance() on a non-object in C:\wamp\www\pages membres\modifmembres2.php on line 16 Call Stack # Time Memory Function Location 1 0.0003 372760 {main}( ) ..\modifmembres2.php:0

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:35
par stealth35
y'a vraiment n'importe quoi dans ton code, c'est du copié collé de bout de codes différents, surprime tout et repart de zero

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:39
par prohand
C'est a dire du n'importe quoi ?

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:46
par prohand
C'esst bon sa marche.
Je ne redirigeais pas sur la bonne page lors du clique sur la modification.

Re: Update mysql en pdo.

Posté : 22 mars 2011, 15:46
par stealth35
connexion avec PDO
une requête avec SPDO->getInstance() ????
une autre avec mysql_query ????

Re: Update mysql en pdo.

Posté : 22 mars 2011, 19:15
par prohand
Oui jy ai modifié cela aussi car je fesai des tests a ce moment là !
Merci quand meme, je ferai bien douvrir mes yeux la prochaine fois