IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enregistrer dans une base de données à partir d'une liste déroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut Enregistrer dans une base de données à partir d'une liste déroulante
    Lors de mon code dans un formulaire je me retrouve dans une liste déroulante qui contient des informations sélectionnées par l'utilisateur que je dois envoyé dans ma base de donnée.
    Voici le code ou l'utilisateur saisie dans mon fichier x.php:
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php include("connect.inc") ?> /j'apelle le fichier connect.inc
    <form name="x" action="ajouY.php" method="post">
    <?php
    echo" <select name='typepersonne'>
    <option><Sélectionnez></option>
    <option>Mme</option>
    <option>M.</option>
    <option>z.</option>
    <option>A</option>
    select>";
    ?>
    
    dans le fichier connect.inc il y a sa
    <?
    $connect = mysql_connect("localhost","root","")
    or die("Echec de la connection");
    $base= mysql_select_db("test", $connect) or die("Erreur de selection de la base");
    
    if($base == 0)
    	die("Base innaccessible");
    
    ?>
    Ensuite une fois sélectionné cela renvoie une requête dans ajou.Y.php ou il y a sa:
    <?php include("connect.inc") ?>
    <html>
    <head>
    <link rel="stylesheet" href="style2.css" type="text/css">
    </head>
    <body>
    
    <h2>Ajout d'une réservation</h2>
    <?
    
    
    if($_POST[typepersonne]=="oui") $personne = "Mme"; else $typepersonne = "M."; else $typepersonne = "z."; else $typepersonne = "A";
    
    $req_insert = "INSERT INTO `personne` ( `typepersonne` ) values( '. $typepersonne .')";
    
    
    $resultat = mysql_query($req_insert) or die("Echec de l'insertion");
    
    if($resultat)
    	echo "personne $_POST[typepersonne] ajouté";
    
    
    
    ?>
    </body>
    </html>


    Comme vous avez compris mon code se répand sur 3 partie:
    - la partie formulaire ou il y a la liste déroulante
    -la partie connect.inc ou il y a connexion à la base
    - et la partie ou il y a le sql

    Dans la base de donnée je dois configurer mon champ qui est typepersonne
    Normalement sur wampserver le TYPE est BOOL et la je suis sur easy php et il ni a pas de type BOOL j'ai un peux tout essayé mais sa ne marche pâs.

    Donc j'ai un problème pour enregistrer mes données avec une liste déroulante OU SA VIENT DE MON CODE OU DU CHAMP TYPE QUE JE NE C4EST PAS LEQUEL METTRE.J'ai essayé google et une recherche mais rien...

    Merci de m'aider.
    @tte

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    a l'avenir essaie de mettre ton code entre les balises par rapport a ton pbm, quand tu fais mysql_query($sql) rajoute or die (mysql_error."erreur"). ça te donneras plus de detail sur l'erreur.
    pourquoi tu ne remplacerais par le type bool par un enum qui prend juste 2 constantes?
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Pour ton souci de type pour faire un bolean moi j'utilise tinyint de taille 1
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if($_POST[typepersonne]=="oui") $personne = "Mme"; else $typepersonne = "M."; else $typepersonne = "z."; else $typepersonne = "A";
     
     $req_insert = "INSERT INTO `personne` ( `typepersonne` ) values( '. $typepersonne .')";
     
     
     $resultat = mysql_query($req_insert) or die("Echec de l'insertion");
     
     if($resultat)
         echo "personne $_POST[typepersonne] ajouté";
    A la place moi je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_POST[typepersonne]))
    {
          $req_insert = "INSERT INTO `personne` ( `typepersonne` ) values('$_POST[typepersonne]')";
    ...
    }
    Stay in Bed .. Save Energy

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut
    Merci pour les conseils je vais modifier.
    Mais j'ai un problème avec cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($_POST[typepersonne]=="oui") $typepersonne = "Mme"; else $typepersonne = "M."; else $typepersonne = "z."; else $typepersonne = "A";
    quand je laisse la requête ci-dessus il n'y a rien qui s'enregistre dans la base de donnée donc il y a un problème là-dedans et là je ne vois pas du tout.

    J'ai configuré le type tinyint dans les champ et je n'ai pas eu d'erreur de requête donc ça c'est bon je pense. C'est la requête de liste déroulante qui pose problème.

    Merci de m'aider

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    euh ce que tu montre c'est pas une requete...
    Stay in Bed .. Save Energy

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    if($_POST[typepersonne]=="oui") $typepersonne = "Mme"; else $typepersonne = "M."; else $typepersonne = "z."; else $typepersonne = "A"
    tu poses mal ta condition. essai de voir la philosophie du if ....else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (condtion)
        blabla
    else {
         if (cond2)
                 blabla
          else
              .........................
    }

    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut
    Je me plante en faisant le if et else.
    ouatmad pourrait tu me faire mon exemple s'il te plait pour que je comprenne mieux et après je fais les vrais modifications sur mon ma page.
    Merci car la je ne voit pas trop comment faire.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Explique ce que tu veu testé avec ton if/else paske la pas claire..
    Stay in Bed .. Save Energy

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par boo64
    Explique ce que tu veu testé avec ton if/else paske la pas claire..
    suis du meme boo64
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut
    Il y a un problème qui se pose avec les liste déroulante: ELLES NE S'ENREGISTRE PAS DANS LA BASE DE DONNEE!!

    Donc j'ai essayé de faire sa:
    if($_POST[typepersonne]=="oui") $personne = "Mme"; else $typepersonne = "M."; else $typepersonne = "z."; else $typepersonne = "A";

    pour essayer que sa s'enregsitre mais sa ne fais rien.

    par exemple si je choisie Mme ou M. ben sa ne s'enregistre pas dans phpmyadmin donc dans la base de donnée.
    dans l'onglet type je suis en tinyint.
    Voilà tout le reste sa va mais je bloque sur les liste déroulante.
    merci de consacrer du temps c'est super sympat

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    pour ta liste deroulante fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     echo" <select name='typepersonne'>
     <option><Sélectionnez></option>
     <option value='Mme'>Mme</option>
     <option value='M'>M.</option>
     <option value='z'>z.</option>
     <option value='A'>A</option>
    </select>";
    ?>
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut
    C'est bon sa marche youpi!! comme j'ai galéré!!
    Merci pôur votre aide.
    Attention je n'ai pas fini de vous embetez
    @tt à lheure

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Juste une précision comme je l'ai mis dans ma 1ere réponse ton if else ne sert à rien tu testes juste si le post existe puis tu utilise directement la variable post pour l'insertion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST[typepersonne])) //test
    {
          $req_insert = "INSERT INTO `personne` ( `typepersonne` ) values('$_POST[typepersonne]')"; // ta requête
    ...
    // ne te reste plus qu'à envoyer
    }
    Stay in Bed .. Save Energy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2016, 18h48
  2. Réponses: 2
    Dernier message: 31/05/2013, 09h59
  3. Réponses: 2
    Dernier message: 23/05/2013, 02h22
  4. Réponses: 0
    Dernier message: 17/04/2012, 10h38
  5. Réponses: 0
    Dernier message: 05/04/2011, 01h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo