Php problème de variable

Bonjour tous le monde !!!

$date_nais_memb=echo'(addslashes($_POST['annee'])"-"addslashes($_POST['mois'])"-"addslashes($_POST['jour']))';

Bon voilà, je me doute que cela ne marchera pas ce que j'ai fais...

Alors que je vous explique un peu, en faite j'ai 3 variables (annee, mois, jour) qu'un utilisateur choisit dans des listes choix.

Je voudrais que mes trois variables se colle pour n'en former qu'une seul sous la forme XXXX-XX-XX
Ex: 1989-11-18 <---- $date_nais_memb

J'espères que mes explications n'étais pas trop farfelus...

Je vous remercie d'avance de votre aide^^

Bonne soirée
Configuration: Windows Vista
Firefox 3.0.14

21 réponses

  1. Parfait cela fonctionne !!!

    Je te remercie énormement du coup de main que tu m'as apporté, et également des quelques conseils^^
    1. tes codes de listes déroulantes sont a reprendre:
      fais les comme ça avec un seul echo à chaque fois
      
      <select name="annee">
      <?php
      for($an=1900;$an < 2011;$an++)
      {
      echo '<option value="'.$an.'">'.$an.'</option>\n'; 
      }
      ?>
      </select>
      


      tu avais fait une concaténation bizarre

      il faut faire par exemple:
      echo 'du texte meme avec des " doubles'.$variable.'encore du texte'.$autre_variable.'encore du text';

      par contre si tu as dans le texte entre les' un guillemet simple ' un une paostrophe il faut l'échapper par \

      exemple
      echo 'il habite a l\'arbresle';
      1. J'ai changé DATE par TEXT pour ne pas avoir de problème...

        Là il y a tout

        Image 1: formulaire XHTML, liste de choix pour une date de naissance (annee, mois, jour)

        https://imageshack.com/

        Image 2: envoie des valeurs dans la base de donnée MySql, l' année, le mois et le jour ne forme plus qu'une variable $date_nais_memb.

        https://imageshack.com/

        Image 3: résultat dans la base de donnée, les variables sont restés vide...elles n'ont pas pris de valeurs...

        https://imageshack.com/
        1. J'ai changé le format sur mysql

          quel faomat as tu mis ? DATE ?

          et je viens de voir que je n'envoyais pas de valeur avec mes variable...
          ?????

          donnes le code que tu as actuellement pour cahrger la variable $date_nais_menbre

          et sql=

          sans cela comment veux tu que l'on trouve
          1. J'ai changé le format sur mysql et je viens de voir que je n'envoyais pas de valeur avec mes variable...
            Je récupère ça : $an-$mois-$jour au lieu de ça auparavant 0000-00-00
            1. arf oui je n'avais pas fait attention...

              Par contre j'ai fait le changement, mais cela ne fonctionne toujours pas...
              1. ha bon pourtant pour moi:

                $date_nais_memb au niveau chargement variable

                est differend de:

                $date_nais_membre au niveau sql=...
                1. C'est pourtant ce que j'ai fait...

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

                  if ($data[0] == 0)
                  {
                  $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';
                  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                  session_start();
                  $_SESSION['login'] = $_POST['login'];
                  header('Location: inscription_ok.php');
                  exit();
                  }
                  1. un peu d'attention arrangera bien les choses !

                    tu charges la variable $date_nais_memb=$_POST...

                    et ensuite tu ecris dans ta base avec la variable :
                    $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';
                    1. J'ai bien fait comme tu me l'as demandé, mais toujours rien...

                      Je n'est plus l'erreur en haut de page

                      Mais quand je reçois les données dans la base, la date est 0000-00-00
                      1. <select name="annee" value="annee">
                        <?php
                        for($an=1900;$an < 2011;$an++)
                        {
                        echo'<option>'; echo $an; echo'<br />'; echo '</option>';
                        }
                        ?>


                        value= ce n'est pas dans le select qu'il faut le mettre mais dans <option !

                        <select name="annee">
                        <?php
                        for($an=1900;$an < 2011;$an++)
                        {
                        echo'<option value="$an">$an</option>\n'; // regardes d'un peu plus près la concaténation en php et pourquoi le <br >? il faut \n pour passer a la ligne dans ce cas
                        }
                        ?>
                        </select>
                        
                        
                        
                        1. <select name="annee" value="annee">
                          <?php
                          for($an=1900;$an < 2011;$an++)
                          {
                          echo'<option>'; echo $an; echo'<br />'; echo '</option>';
                          }
                          ?>

                          Bah si pourtant...
                          1. Undefined index: annee

                            veut justement dire que tu n'as pas dans ton formualire de champ (texte ou liste déroulante) qui se nomme annee

                            attention avec exactement la même casse et la même orthographe

                            et surtout pas d'accent !!
                            1. Oui, tous ça, c'est ok !!!

                              le message d'erreur est celui-ci

                              Notice: Undefined index: annee in C:\wamp\www\Site_internet\inscription.php on line 2
                              1. il faut que avant la ligne: sql=... tu ait la ligne qui charge la variable $date_nais_menbre

                                $date_nais_memb=$_POST['annee']."-".$_POST['mois']."-".$_POST['jour']; 
                                $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())'; 
                                


                                et est ce que tes listes deroulantes ont bien pour name annee mois jour ?

                                et as tu bien mis une value= dans <option >
                                1. Heu rectification !!! L'adresse membre fonctionne... (j'avais le name de ma textbox qui étais écrit "adre_memb")

                                  Oups^^
                                  1. Houlà!!! oui j'avais fait des bêtise...

                                    Bon comme tu vas pouvoir le voir je ne uis pas très ordonné dans mon code...

                                    J'ai bien mis ce que tu m'as dis mais j'ai toujours une erreur...

                                    Mais je penses que l'erreur vient de ma requête...

                                    $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';

                                    Quand j'envoie, Je recois bien "tout" dans ma base de donné excepter adr_memb et ma date_nais_memb

                                    Bizarre pour l'adresse membres???

                                    Entout cas je te remercie du coup de main^^
                                    • 1
                                    • 2