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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    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 émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    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?

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    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]')";
    ...
    }

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    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 Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    euh ce que tu montre c'est pas une requete...

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    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
              .........................
    }


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

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    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 Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

+ 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