7997 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

Je souhaite modifier le nom dans ma bdd en pdo, via un formulaire.

Code en version test

<p align="center">&nbsp;</p>
<form id="form2" method="post" action="test.php">
  <p align="center">
  <label for="id">
  <div align="center">
        </label>
        <div align="center">
          <p align="center">Nom
            <input type="text" name="nom" id="nom" size="30" maxlength="50" />
          </p>
          <p align="center">id 
            <input type="text" name="id" id="id" size="30" maxlenght="10" />
          </p>
          <p align="center">
            <input type="submit" name="button2" id="button2" value="Envoyer" />
          </p>
          <p align="center">&nbsp;</p>
          <p align="center">&nbsp; </p>
  </div>
</form> 
						   
  <p align="center">
  <?php
	$nom = (isset($_POST['nom']) ? $_POST['nom'] : ""); 
    $id = (isset($_POST['id']) ? $_POST['id'] : "");     

    $bdd = new PDO('mysql:host=localhost;dbname=X', 'X', 'X');  
    foreach($bdd->query('SELECT nom from membre') as $row) {
        print_r($row);
    } 
      
	  $req = $bdd->prepare('UPDATE membre SET nom = :nom WHERE id = :id');                 
                    
      $req->execute(array($_POST['nom'],$_POST['id']));
	  
	
	?> 


Je commence à m'énerver avec ce foutu code, et pas moyen de changer le nom Tintin en Milou dans ma bdd. Smiley fache

Il y a une coquille et je n'arrive pas à la trouver.
Modifié par Tintin75 (01 Aug 2018 - 17:03)
salut,

tu as vu ta ligne?
$bdd = new PDO('mysql:host=localhost;dbname=X', 'X', 'X');

X, c'est quoi? à moins que ta BDD, ton login et ton password soient tous égal à X...

Il faudrait déjà que tu colles une vraie variable php à la place de X
Merci, j'ai réussit mais je bloque avec ça :

$req=$bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
$req->execute();
$req = $_SESSION['nom'];


Il faut que j'arrive à récupérer la réponse dans $_SESSION['nom']

En gros, je veux interroger la bdd, qu'il me trouve le nom à partir de l'id.

Id1 = Jojo
Id2 = Milou ...

J'y suis depuis ce matin 9 heures et je n'y arrive pas, je suis plus idiot que la moyenne Smiley bawling
Modifié par Tintin75 (01 Aug 2018 - 11:36)
lionel_css3 a écrit :
salut,

tu as vu ta ligne?
$bdd = new PDO('mysql:host=localhost;dbname=X', 'X', 'X');

X, c'est quoi? à moins que ta BDD, ton login et ton password soient tous égal à X...

Il faudrait déjà que tu colles une vraie variable php à la place de X


Je pense que les X sont là uniquement pour le forum et ne pas communiquer les vrais infos ^^
exemple :
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* styles PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
$sth = $dbh->prepare('SELECT nom FROM Compte WHERE id = :id');
			$sth->execute();

			/* styles PDOStatement::fetch */
			print("PDO::FETCH_ASSOC: ");
			print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes\n");
			$result = $sth->fetch(PDO::FETCH_ASSOC);
			print_r($result);
			print("\n");
$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
			$req->execute();
			print("PDO::FETCH_ASSOC: ");
			$result = $req->fetch(PDO::FETCH_ASSOC);
			print_r($nom);


Je commence à énerver un peu !!
Modifié par Tintin75 (01 Aug 2018 - 12:16)
Tintin75 a écrit :
$req = $bdd-&gt;prepare('SELECT nom FROM Compte WHERE id = :id');
			$req-&gt;execute();
			print("PDO::FETCH_ASSOC: ");
			$result = $req-&gt;fetch(PDO::FETCH_ASSOC);
			print_r($nom);


Je commence à énerver un peu !!


Non, non, là c'est pas bon, je ne sais pas d'où vient la variable $nom
Variable ? Je commence à fatiguer un peu

J'ai du mal à piger, la variable nom vient de la requête sur la bdd. C'est la valeur que je veux obtenir !
Modifié par Tintin75 (01 Aug 2018 - 12:20)
Tintin75 a écrit :
Variable ? Je commence à fatiguer un peu


oui dans ta requête tu as : WHERE id = :id
J'ai pigé, l'id est le n° de la ligne dans ma table. Il faut que j'indique la ligne pour qu'il trouve le nom dans la fiche.
WHERE id = :id veut dire que je dois récupérer la variable dans sa session.

			$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = ?', [$_SESSION['id']]);
			$req->execute(nom);
			print("PDO::FETCH_ASSOC: ");
			$result = $req->fetch(PDO::FETCH_ASSOC);
			print_r($nom);


J'ai testé, j'ai bien l'id à l'écran sur ma page. Il y a une coquille !!!
Modifié par Tintin75 (01 Aug 2018 - 12:36)