Pb pour inserer une variable dans une bdd

Fermé
Mickel - 13 mai 2008 à 11:17
 Mickel - 13 mai 2008 à 17:17
Bonjour,

j'apprends le PHP depuis TRES peu et j'ai encore de grosse lacune donc je m'excuse d'avances si le probème que je vais citer est de très faible niveau :P

Voila je cherche a créé un formulaire et je souhaiterai insérer dans ma base donnée la date de naissance a l'aide des 3 champs du formulaire jour mois année. Mais il doit i avoir un problème dans mon code car rien ne s'affiche dans ma base de donnée dans le champs [ DDN ] lorsqu'on rempli le formulaire. les autres champs s'affichent très bien dans la bdd

Voici la commande de mon insertion :

'INSERT INTO XXXX VALUES("", "'.mysql_escape_string($_POST['pseudo']).'" , "'.mysql_escape_string($_POST['jour']).'" , "'.$ddn.'" , "'.mysql_escape_string($_POST['annee']).'" , "'.$ddn.'" , "'.md5(mysql_escape_string($_POST['mdp'])).'")';


Et cela, ce que j'essais d'afficher pour le champs ddn (date de naissance)

$ddn=$_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'] ;

sachant que les variable jour mois année sont issues de <select></select> et qu'elles s'affichent très bien dans ma bdd si je crée un champ pour chacun des 3 variables.

Merci beaucoup de votre aide.

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 mai 2008 à 14:05
Salut,

première chose, vérifie que les valeurs que tu veux enregistrer sont bien envoyées par le formulaire

pour cela tu mets provisoirement au début de ton script d'enr dans la bdd:

echo "<pre>";
print_r($_POST);
echo "</pre>";


tu vas voir un array de tous tes champs

par ex [annee]=>1940

etc..

et est ce normal que tu ait deux fois le champ 'annee' ?

et as tu vérifié que tu as autant de champs dans ta BDD que tous ceux que tu veux enregistrer (tu as deux fois $ddn ?)

@lain
0
tout d'abord j'ai bien entré ta commande

echo "<pre>";
print_r($_POST);
echo "</pre>";

et ça m'affiche un array vide. :( .

En vérité il n'y as pas 2 fois $ddn c juste une erreur quand j'ai copié collé. Voila la ligne exacte.

'INSERT INTO XXXX VALUES("", "'.mysql_escape_string($_POST['pseudo']).'" , "'.mysql_escape_string($_POST['jour']).'" , "'.$_POST['mois'].'" , "'.mysql_escape_string($_POST['annee']).'" , "'.$ddn.'" , "'.md5(mysql_escape_string($_POST['mdp'])).'")';


Toutes les données rentré via le formulaire s'insèrent sans probème dans la base de donnée sauf la variable $ddn qui ne fait pas partie du formulaire mais dont je veux insérer en même temps.

Oui il y a bien autan de champs dans ma bdd que de donnée que je veux enregistrer
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > Mickel
13 mai 2008 à 16:48
Bizzarre,

as tu bien mis
$ddn=$_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'] ;

avant ta commande INSERT INTO

pour verifier que tu as bien qq chose mets des echo:


$ddn=$_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'] ;
echo "Date de naisance: ".$ddn;
si tu n'as que des -

rajoutes echo "annee: ".$_POST['annee'];

etc.. idem pour jour mois
0
Mickel > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
13 mai 2008 à 17:17
J'ai un peu honte de moi. ça fait déjà quelques jours que je bloquais sur ce petit problème cherchant des réponses sur divers forum mais ne trouvant pas de réponses spécialisés. Effectivement je cherchais l'erreur au mauvais endroit puisque je mettais simplement $ddn=$_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'] ;
APRES le INSERT.

C'est tout bête mais j'y faisait pas attention et je me tirais les cheveux parce que je voyais vraiment pas d'ou ça pouvait venir. Merci beaucoup. :D
0