Page 1 sur 1

Probleme d'envois de données

Posté : 17 sept. 2011, 10:38
par bioni
Bonjour a tous,
Je me présente Rémi débutant en programmation de php, lors de ma création d'in espace memebre j'ai quelques soucis :
Il faut savoir que j'ai organiser mon code ainsi: 1ere page contient des forms, la valeurs de ceux-cis sont transmis dans une 2eme page invisible a l'utilisateur ce qui permet d'inscrire les informations dans la base de donnée . et cette 2eme page renvois les informations dans une 3eme page et les affiches.

Voici mon 1er probleme:

<form method="post" action="new1_post.php">
<p>
<span class="selection1"><label for="sexe"><strong>Vous êtes :</strong></label><br /></span>
<span class="selection11"> <select name="Sexe" id="Sexe"style="width:125px">
<option value="1">Un Homme</option>
<option value="0">Une Femme</option>
</select></span>
</p>
</form>

et la page invisible voici le code :
$req = $bdd->prepare('INSERT INTO new (Pseudo,Mdp,Email,Sexe) VALUES(?,?,?,?)');
$req->execute(array($_POST['Pseudo'], $_POST['Mdp'],$_POST['Email'],$_POST['Sexe']));

Et cela me donne cette erreur :

Erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'Sexe' cannot be null





et mon 2eme probleme concerne l'affichage de la 3eme page
puisque lors de l'affichage du premier form c'est pas un soucis mais quand je remplis un 2eme form, sur ma 3eme page je vais avoir le form précédent d'affiché pourquoi ?

Re: Probleme d'envois de données

Posté : 17 sept. 2011, 10:58
par Ryle
Le message d'erreur indique que ta base de données ne permet pas de ne pas avoir de valeur pour le champ sexe (le champ est de type NOT NULL).

Ton problème vient apparemment du fait que tu as un formulaire à part pour gérer le sexe, et que donc la valeur sélectionnée n'est pas envoyée avec les pseudo, pass et email (et ne peut donc pas être récupéré dans ta requête sql pour être enregistrée en base)

Re: Probleme d'envois de données

Posté : 17 sept. 2011, 11:12
par bioni
Merci beaucoup !!!
J'ai trouver le probleme !

<input type="submit" value="Envoyer" />

je l'ai deplacer a la fin de tous mes forms pour envoyer la TOTALITEE des valeurs !!

Une petite question qui est assez bete d'ailleur, lorsque je souhaite recuperer les données d'une ligne mais que je ne connais pas son ID comment je fais ?

Re: Probleme d'envois de données

Posté : 17 sept. 2011, 15:35
par Ryle
Ca dépend un peu de ce que tu veux faire et de ce que tu as comme infos...

Par exemple, juste après avoir fait une insertion en base de données dans une table qui contient un champ en auto_increment, tu peux utiliser la fonction mysql_insert_id() qui va te retourner l'id qui a été généré :)

Sinon, si tu veux retrouver un ou plusieurs enregistrements, tu peux aussi spécifier différents prédicats dans ta requête sql :
SELECT ... FROM ... WHERE ton_champ = ... 
SELECT ... FROM ... WHERE ton_champ = ... AND un_autre_champ = ... AND ...
Tu peux ainsi rechercher le(s) enregistrement(s) pour lesquels l'email est égal à une certaine valeur, ou encore rechercher un enregistrement d'après son login et son mot de passe (quand un utilisateur se log par exemple :))