Pb pour inserer une variable dans une bdd

Mickel -  
 Mickel -
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.
Configuration: Windows XP
Firefox 2.0.0.14

1 réponse

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. Mickel
       
      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
      1. Alain_42 Messages postés 5413 Statut Membre 904 > Mickel
         
        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
      2. Mickel > Alain_42 Messages postés 5413 Statut Membre
         
        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