8768 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

wow... plus tu code, plus tu mélange.. reprend mon exemple du début tranquillement ^^
explications du code que tu m'a pondu :

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

cette ligne c'est pour "préparer" comme c'est écrit... donc tu place ta requêtes avec les variables dans le where (WHERE id = ?); attention, les variables seront assigné lors de "execute", donc la c'est pas bon.
Soit tu concatène la requête direct, soit tu ajoute la variable ID (celle qui contient le bon ID) dans le execute.

2)
$req->execute(nom);

Primo, une variable php est toujours avec un dollar au début.
Ici la seul variable qui est attendu c'est le fameux ID qui est "demandé" lors du prépare.

3)
print_r($nom);

Ici c'est juste pour afficher le résultat de la requête sql. Donc on fetch le résultat avant de l'afficher.
je sais pas pourquoi tu te préocupe du "$nom" depuis le début. Si "$nom" est une valeur que tu attends via la requête, alors il sera dans "$result" dans le tableau associatif comme l'on a demandé avec FETCH_ASSOC
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);


Maintenant, à toi de coder !
Modifié par JENCAL (01 Aug 2018 - 12:46)
  <?php
		 
    require_once('include/connect.php');      
	$req = $bdd->prepare('UPDATE Compte SET nom = :nom WHERE id = :id');
    $req->bindValue('nom',$_POST['nom']);
    $req->bindValue('id',$_POST['id']);
    if (!$req->execute()) {
        echo 'Erreur';
    } else {
        echo 'Information modifi&eacute;, merci.';
    }
?>


Ce code fonctionne parfaitement. J'ai bien mon id = :id'); Donc, ça doit fonctionner pour moi. Smiley hum
Modifié par Tintin75 (01 Aug 2018 - 12:50)
Correction du code :

$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
$req->execute($id);
$result = $req->fetch(PDO::FETCH_ASSOC);
print_r($result);


J'ai du mal à comprendre : Soit tu concatène la requête direct, soit tu ajoute la variable ID (celle qui contient le bon ID) dans le execute.
Tintin75 a écrit :

J'ai du mal à comprendre : Soit tu concatène la requête direct, soit tu ajoute la variable ID (celle qui contient le bon ID) dans le execute.


en faite soit tu créer ta requête en mode concaténé :
la rq suivante
$sql = "SELECT nom FROM Compte WHERE id = :id"
devient :
$sql = "SELECT nom FROM Compte WHERE id =" . $_POST["id"];

ou alors sois tu passe par ton
$req->bindValue('nom',$_POST['nom']);

mais il ne faut pas oublié les ":" dans :nom :
$req->bindValue(':::::::::::nom',$_POST['nom']);
J'ai mis plein de "::::::::" exprès, mais il en faut qu'un ^^
Modifié par JENCAL (01 Aug 2018 - 13:02)
NULL comme le gars qui est derrière le clavier !!!

var_dump($id);

Modifié par Tintin75 (01 Aug 2018 - 13:02)
Normale que cela soit nul... $id existe pas.

je cite : pourrais tu faire un var_dump de tes variable $_POST merci
Modifié par JENCAL (01 Aug 2018 - 13:04)
dur dur... tu corrige une erreur mais tu en créer une ailleurs alors qu'il fallait pas touché.. tu corrige la nouvelle et tu refais une autre erreur ailleurs en mélangeant les choses.... dur dur dur.... reprend ton code tranquillement, et a CHAQUE ligne pose toi les bonnes questions.
Modifié par JENCAL (01 Aug 2018 - 13:07)
Smiley bawling en gros, je n'arrive pas à récupérer l'id c'est ce qui me pose problème ?

La version la moins mauvaise.

<?php
			$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
			$req->execute($id);
			$result = $req->fetch(PDO::FETCH_ASSOC);
			print_r($result);
			?>

Modifié par Tintin75 (01 Aug 2018 - 13:09)
J'ai pigé mon erreur, j'oublias d'envoyer l'id.

J'arrive à voir le n° de mon id sur la page avec un echo, donc je suis proche de la sortie.
Tintin75 a écrit :
J'ai pigé mon erreur, j'oublias d'envoyer l'id.

J'arrive à voir le n° de mon id sur la page avec un echo, donc je suis proche de la sortie.


fait voir la dernière mise à jour de ton code ?
echo $_SESSION['id'];          
			$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
			$req->bindValue('id',$_POST['id']);
			if (!$req->execute()) {
                    echo 'Erreur';
                } else {
                    echo 'OK';
                }


Pas d'erreur, sauf que j'arrive pas voir le nom ! J'ai bien le OK, à l'écran.
Modifié par Tintin75 (01 Aug 2018 - 13:57)
		
			<?php
			
			echo $_SESSION['id'];          
			$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
			$req->bindValue(':id',$_POST['id']);
			if (!$req->execute()) {
                    echo 'Erreur';
                } else {
                    echo 'OK';
                }
          
			?>

			echo $_SESSION['id'];          
			$req = $bdd->prepare('SELECT nom FROM Compte WHERE id = :id');
			$req->bindValue(':id',$_POST['id']);
			if (!$req->execute()) {
                    echo 'Erreur';
                } else {
                    echo 'OK';
                }
            var_dump($nom);


OK et NULL, on doit pas être loin ... Smiley murf

J'ai bien mon id à l'écran. Smiley lol
Modifié par Tintin75 (01 Aug 2018 - 14:06)
Pages :