passage de parametres. pb avec WHERE.

Eléphant du PHP | 335 Messages

18 juil. 2005, 14:43

Bonjour

Alors je vais essayé d'etre clair! lol

J'ai un formulaire ou l'on donne le nom et le prenom.
Aprés plusieurs choses a remplir (on clic plusieurs fois sur suivant), l'utilisateur arrive sur une page ou il faut répondre oui ou non.
Lorsqu'il clic sur Valider, voici ce qui est executé :
$query = "insert into messagerie SET statut='".$_POST['statut']."' WHERE nom='".$_POST['nom']."'";
Or cette commande ne marche pas car il n'y a aucun nom de récupérer vu que le formulaire pour le nom se situait plusieurs pages avant.

Je voudrais savoir comment faire pour enregistrer le statut (oui ou non) à l'utilisateur qui a été indiqué au début.

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 juil. 2005, 14:46

tout d'abord, la commande INSERT ... WHERE n'existe pas, et c'est logique

INSERT => nouvelle ligne
donc comment attribuer une condition à une ligne qui n'existe pas ? :?

tu devais penser à UPDATE...

Eléphant du PHP | 335 Messages

18 juil. 2005, 14:50

Oups!! Oui tu as raison :lol:

mais le probleme est sur le WHERE car comme le formulaire si situait plusieurs pages avant, il ne sait pas a quoi correspond le $_POST['nom']

Comment faire?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 juil. 2005, 14:52

regarde du coté des sessions : http://www.phpdebutant.org/article69.php

attention : un nom ce n'est peut-être pas génial comme identifiant (homonymes)

Mammouth du PHP | 543 Messages

18 juil. 2005, 14:55

tout a fait, il va falloir utiliser les sessions, ou les champs hidden dans les formulaires, mais cette dernière solution fait plutot bricolage :)

Eléphant du PHP | 335 Messages

18 juil. 2005, 15:16

Merci pour vos conseils

Voila ce que j'ai fais :
$_SESSION['id']= $_POST['nom'];
Je voudrais savoir comment concatener le nom et le prenom ds ma variable de session?

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

18 juil. 2005, 15:20

pourquoi mettre 'nom' dans 'id' ?
t'as pas peur de t'embrouiller ? :lol:

pour concaténer, tu fais comme avec n'importe qu'elle variable :
$_SESSION['nom'] = $_POST['prenom']." ".$_POST['nom'];
Modifié en dernier par ouckileou le 18 juil. 2005, 15:28, modifié 1 fois.

Mammouth du PHP | 543 Messages

18 juil. 2005, 15:26

pour mettre 'nom' dans 'id' ?
t'as pas peur de t'embrouiller ? :lol:
ouaip vaut mieux garder les memes nom de variables entre les differentes methodes pour eviter les erreurs :) ou alors rajouter un prefixe pour etre encore plus sur et securiser le truc :)

Eléphant du PHP | 335 Messages

18 juil. 2005, 16:38

Voici ce que j'ai fais pour $_SESSION
$_SESSION['id']= $_POST['prenom']." ".$_POST['nom'];
Et pour ma requete j'ai utilisé CONCAT, or ca ne marche pas et je ne vois pas ou est mon erreur
$query = "UPDATE messagerie SET statut='".$_POST['statut']."' WHERE CONCAT(nom, CONCAT(prenom))='".$_SESSION['id']."'";
Merci pour votre aide...

Mammouth du PHP | 543 Messages

18 juil. 2005, 16:40

stockes plutot nom et prenom dans deux variables de session differentes, et fait ta requete en testant nom et prenom séparemments, plutot que de t'embeter avec un concat()

Eléphant du PHP | 335 Messages

18 juil. 2005, 16:49

J'aurais bien voulu savoir d'ou venait mon erreur...

Personne ne sait?

Mammouth du PHP | 543 Messages

18 juil. 2005, 16:53

$query = "UPDATE messagerie SET statut='".$_POST['statut']."' WHERE CONCAT(nom,' ',prenom)='".$_SESSION['id']."'";
@++