die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM membre WHERE id = :id');
$req->execute(array('id' => $_GET['id']));
($donnees = $req->fetch());
session_start();
if (isset($_SESSION['id']) AND isset($_SESSION['pseudo']))
{
echo '<h6> Vous êtes connecté sous le peudo ' . $_SESSION['pseudo'] . '</h6>';
}
?>
<table>
<tr>
<th>Pseudo</th>
<td><input type="text" name="pseudo" value="<?php echo $donnees['pseudo']; ?>" id="pseudo" /></td>
</tr>
</table>
Bonjour à tous !
Voici mon problème. je suis en train de créer une page pour pouvoir changer ses informations personnelles (pseudo, mot de passe, etc). Donc, j'ai commencé. Et là, j'ai déjà un problème. J'aimerai que mon pseudo actuel s'affiche dans la zone de texte. et je n'y parviens pas ! Mon code ci-dessus.
j'ai trouver la solution mais maintenant, j'essaye d'enregistrer les informations dans une bdd et il me met ce message :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in /homepages/33/d664142698/htdocs/modifier.php:74 Stack trace: #0 /homepages/33/d664142698/htdocs/modifier.php(74): PDOStatement->execute(Array) #1 {main} thrown in /homepages/33/d664142698/htdocs/modifier.php on line 74
je vous met mon code. Merci de m'aider parce que j'ai pratiquement terminer !
Sinon, déjà, comme le dit le message d'erreur, tu ne peux pas mélanger les marqueurs positionnels (?) et nommés (:nom), tu utilises l'un ou l'autre, pas un mélange des deux.
Non, j'ai enlever la seconde connexion. mais sinon, j'ai aussi enlever les ? il y a toujours une erreur. en fait, je pense que c'est la clause Where id= :id qui la provoque. pourtant j'en ai besoin pour que l'id soit modifier et pas qu'il en créer un nouveau.
Tu ne peux pas avoir de clause WHERE dans une requête INSERT. Soit tu crées une requête UPDATE dans laquelle tu pourras utiliser ta clause WHERE et qui modifiera l'occurence définie par ton ID, soit tu crées une requête INSERT et tu insères ton ID "manuellement" dans les VALUES (auquel cas, si c'est une clé primaire tu vas souvent te retrouver avec un soucis de dualité des clés primaires dans ta table).
Je fais un UPDATE sous cette forme et ca me donne toujours des erreurs. en plus, je suis pas sûr qu'il reconnaisse $pseudo comme nouvelle valeur... (voir mon code plus haut comment son modifiée mes valeurs)
Il faut vraiment que tu sois plus précis.. Quelles erreurs? D'ou sors-tu $pseudo? Je ne le vois pas dans ton code précédent.. Tu prépares une requête qui attend sept paramètres et tu l'executes avec un seul paramètre.
Malheureusement avec ce que tu me proposes ici je ne peux pas t'aider plus.
ok. Alors, j'ai mis les sept paramètres. L'erreur semble me dire qu'il en manque un (pourtant je les ai compter !). En fait, j'explique : cette page sert a modifier les données d'un utilisateur. Par exemple son pseudo. Celui-ci est afficher dans une zone de texte. Et je veux que quand on clique sur Enregistrer, la nouvelle valeur de pseudo soit enregistrée. Tout cela est visible dans mon code que je te redonne en entier. Si tu veux je t'envoi aussi le message d'erreur :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in /homepages/33/d664142698/htdocs/modifier.php:73 Stack trace: #0 /homepages/33/d664142698/htdocs/modifier.php(73): PDOStatement->execute(Array) #1 {main} thrown in /homepages/33/d664142698/htdocs/modifier.php on line 73
Non, quand je le met il me dit que le paramètre n'a pas été défini :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /homepages/33/d664142698/htdocs/modifier.php:74 Stack trace: #0 /homepages/33/d664142698/htdocs/modifier.php(74): PDOStatement->execute(Array) #1 {main} thrown in /homepages/33/d664142698/htdocs/modifier.php on line 74
Non, mais d'accord, ca je l'ai corriger. En fait, bon, ce que m'a dit Christouphe était bon, il fallait bien rajouter l'id. Mais ca ne résous toujours pas mon problème. Vu qu'il n'y a pas de $nom ou prénom ou quoi que ce soit de e style dans ma page, j'ai mis $donnees['nom'] mais ca ne change rien. Quand j'active les exception PDO a chaque lignes, on me dit qu'il manque une ) quelque-part...
Voilà le message d'erreur. c'est le même pour toute les lignes, mais en signalent l'erreur à la ligne d'en dessous.
Parse error: syntax error, unexpected ''id'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in /homepages/33/d664142698/htdocs/modifier.php on line 74
Donnes les code et erreur(s) complète(s) sinon on ne s'en sortira jamais.
Tes $nom & cie, ça devrait être des variables POST ($_POST['nom'], idem pour les autres), non, puisqu'elles sont issues de ton formulaire ?
Il va falloir encapsuler l'update dans un if s'assurant que ces variables existent sinon tu vas tenter une MàJ avec des données que tu n'as pas (= au mieux, ça plante ; au pire, tu MàJ tous tes champs de ta ligne avec des NULL)
Bon, le problème semble régler avec les $_POST. Quand la page se rafraichit, tous les champs sont vides, mais la bdd, elle, n'est pas vidée (je m'en suis assuré).
if (isset($_SESSION['nom']) AND isset($_SESSION['prenom']) AND isset($_SESSION['email']) AND isset($_SESSION['tel'])AND isset($_SESSION['pseudo']) AND isset($_SESSION['pass']) AND isset($_SESSION['fonction']))
{
echo 'erreur';
}
else
{
$req = $bdd->prepare('UPDATE membre SET nom = :nvnom, prenom= :nvprenom, email= :nvemail, tel= :nvtel, pseudo= :nvpseudo, pass= :nvpass, fonction= :nvfonction WHERE id= :id');
$req->execute(array(
'nvnom'=> $_POST['nom'],
'nvprenom'=> $_POST['prenom'],
'nvemail'=> $_POST['email'],
'nvtel'=> $_POST['tel'],
'nvpseudo'=> $_POST['pseudo'],
'nvpass'=> $_POST['pass'],
'nvfonction'=> $_POST['fonction'],
'id' => $_SESSION['id'], ));
}
Désole mais le problème 'est pas résolu. Maintenant, quand je fais un upload, mes données sont effacées de ma bdd ! Julp m'a conseiller de mettre la fonction d'upload dans un if pour que ça n'arrive pas. Voir ce que j'ai fait ci-dessus. cependant, ca ne règle pas le problème. Ais-je fait une erreur ? Comment m'en sortir ?
Est-ce que tu comprends ce que tu écris au moins ? Le corps de ton if et de ton else sont inversés ... Tu ne veux faire la màj de ton membre que si tu as tout le nécessaire, pas s'il en manque, non ?
Et puis pourquoi les variables $_POST sont devenues des $_SESSION.
Maintenant, quand je fais un upload, mes données sont effacées de ma bdd !
Je ne vois pas d'upload là-dedans mais, bref, si toutes tes colonnes acceptent NULL, ce qui me paraît un peu gros (ton membre peut ne pas avoir d'email ?), avec un tel code, tu m'étonnes que ça passe comme une lettre à la poste au lieu d'être rejeté.
J'n ai marre ! Tout marchait bien et maintenant mon code ne semble plus être lu. tout est afficher mans quand je clique sur le bouton, rien ne change ! Alors que ca marchait tout à l'heure !
Désolé mais je pense que tu ne comprends pas du tout ce que tu fais. Reprends les choses calmement, essaie de comprendre ce que tu fais et essais d'etre plus clair car "J'en ai marre" ou "Ca marche pas", je sais pas pour les autres mais moi je suis pas magicien.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales