Page 1 sur 1

passage de parametres. pb avec WHERE.

Posté : 18 juil. 2005, 14:43
par Justone
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

Posté : 18 juil. 2005, 14:46
par ouckileou
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...

Posté : 18 juil. 2005, 14:50
par Justone
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?

Posté : 18 juil. 2005, 14:52
par ouckileou
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)

Posté : 18 juil. 2005, 14:55
par raptor
tout a fait, il va falloir utiliser les sessions, ou les champs hidden dans les formulaires, mais cette dernière solution fait plutot bricolage :)

Posté : 18 juil. 2005, 15:16
par Justone
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

Posté : 18 juil. 2005, 15:20
par ouckileou
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'];

Posté : 18 juil. 2005, 15:26
par raptor
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 :)

Posté : 18 juil. 2005, 16:38
par Justone
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...

Posté : 18 juil. 2005, 16:40
par raptor
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()

Posté : 18 juil. 2005, 16:49
par Justone
J'aurais bien voulu savoir d'ou venait mon erreur...

Personne ne sait?

Posté : 18 juil. 2005, 16:53
par raptor
$query = "UPDATE messagerie SET statut='".$_POST['statut']."' WHERE CONCAT(nom,' ',prenom)='".$_SESSION['id']."'";
@++