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 :

stocker valeur du select d'une liste déroulante dans mySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut stocker valeur du select d'une liste déroulante dans mySQL
    Encore moi et mes pitis pbs de SQL...

    Sur un très grand formulaire de l'espace admin, j'ai 3 listes déroulantes alimentées par BDD qui s'affichent parfaitement.

    Mais je n'arrive pas à récupérer la valeur sélectionnée dans ces listes pour les renvoyer dans ma base de données

    Les tables utilisées pour une des listes déroulantes :

    Code : 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
    -- --------------------------------------------------------
    --
    -- Structure de la table documentaire (8)
    --
    CREATE TABLE IF NOT EXISTS documentaire (
      idDoc tinyint (3) NOT NULL AUTO_INCREMENT, 
      nomDoc_fr varchar(100) NOT NULL,
      nomDoc_en varchar(100) NOT NULL,
      ...
      idNaturDoc varchar(3) ,
     ...
      CONSTRAINT pk_documentaire
    		PRIMARY KEY (idDoc),
      CONSTRAINT fk_DocNatur
    		FOREIGN KEY (idNaturDoc) REFERENCES naturDoc(idNaturDoc) ON DELETE CASCADE,
      ...
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
     
    -- --------------------------------------------------------
    --
    -- Structure de la table naturDoc (3)
    --
     
    CREATE TABLE IF NOT EXISTS naturDoc (
      idNaturDoc varchar(3) NOT NULL,
      nomNaturDoc_fr varchar(20) NOT NULL,
      nomNaturDoc_en varchar(20) NOT NULL,
      CONSTRAINT pk_naturDoc
    		PRIMARY KEY (idNaturDoc)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table naturDoc
    --
     
    INSERT INTO naturDoc (idNaturDoc, nomNaturDoc_fr, nomNaturDoc_en) VALUES
    ('doc', 'documentaire', 'documentary'),
    ('daf', 'danse-fiction', 'dance-fiction'),
    ('dan', 'danse', 'dance'),
    ('mus', 'musique', 'music'),
    ('crv', 'création vidéo', 'crative video'),
    ('web', 'web documentaire', 'web documentary'),
    ('fic', 'fiction', 'fiction');

    la partie du formulaire contenant la liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <p class="form">
    	<label for="nature">* Nature
    	<span class="info">Choisissez la nature du film.</span></label>
     
    	<select id="nature" name="natureDoc">
    		<option value="" selected="selected"></option>
    		<?php
    		$rq=mysql_query("SELECT * FROM naturDoc");
    		while ( $val = mysql_fetch_array($rq) ):?>
    		echo "<option value="<?=$val['idNaturDoc'];?>""/><?=$val['nomNaturDoc_fr'];?></option><br/>" ;
    		<?php endwhile; ?>
    	</select>					
    </p>
    Le code qui ne fonctionne pas (pas de message d'erreur mais pas d'insertion dans la table documentaire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // ********************** récup liste déroulante Nature *************************** 
    	$idDocumentaire=mysql_insert_id(); // La valeur de l'index attribué au document.
    	if(isset($_POST['NatureDoc'])) { // Envoie du formulaire...
     
    		$idNaturDoc=$_POST["idNaturDoc"];
    		$sqlNatur=mysql_query ("INSERT INTO documentaire (idNaturDoc) VALUES ('$idNaturDoc')");
    	}
    Je précise que le souci ne peut pas venir d'une mauvaise connexion sql car un peu plus haut dans le formulaire, je récupère des champs de type text et ils atterrissent bien dans ma BDD.

    Merci de m'aider

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Outre qu'il serait bon de ne pas relancer les hostilités intergalactiques
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    		$rq=mysql_query("SELECT * FROM naturDoc");
    , quelque chose devrait t'interpeller:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT id="nature" name="natureDoc">
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['NatureDoc'])) {

  3. #3
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Je ne connaissais pas les hostilités intergalactiques

    Tu as raison, j'avais mal orthographié certains mots !

    Alors, si j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <select id="naturDoc" name="naturDoc">
    	<option value="" selected="selected"></option>
    	<?php
    	$rq=mysql_query("SELECT idNaturDoc, nomNaturDoc_fr FROM naturDoc");
    	while ( $val = mysql_fetch_array($rq) ):?>
    	echo "<option value="<?=$val['idNaturDoc'];?>""/><?=$val['nomNaturDoc_fr'];?></option><br/>" ;
    	<?php endwhile; ?>
    </select>
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $idDocumentaire=mysql_insert_id(); // La valeur de l'index attribué au document.
    	if(isset($_POST['naturDoc'])) { // Envoie du formulaire...
     
    		$idNaturDoc=$_POST["idNaturDoc"];
    		$sqlNatur=mysql_query ("INSERT INTO documentaire (idNaturDoc) VALUES ('$idNaturDoc')");
    	}
    ça ne saisi toujours pas l'idNaturDoc dans la table documentaire

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par StephBretagne Voir le message
    Je ne connaissais pas les hostilités intergalactiques

    Tu as raison, j'avais mal orthographié certains mots !

    Alors, si j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <select id="naturDoc" name="naturDoc">
    	<option value="" selected="selected"></option>
    	<?php
    	$rq=mysql_query("SELECT idNaturDoc, nomNaturDoc_fr FROM naturDoc");
    	while ( $val = mysql_fetch_array($rq) ):?>
    	echo "<option value="<?=$val['idNaturDoc'];?>""/><?=$val['nomNaturDoc_fr'];?></option><br/>" ;
    	<?php endwhile; ?>
    </select>
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $idDocumentaire=mysql_insert_id(); // La valeur de l'index attribué au document.
    	if(isset($_POST['naturDoc'])) { // Envoie du formulaire...
     
    		$idNaturDoc=$_POST["idNaturDoc"];
    		$sqlNatur=mysql_query ("INSERT INTO documentaire (idNaturDoc) VALUES ('$idNaturDoc')");
    	}
    ça ne saisi toujours pas l'idNaturDoc dans la table documentaire
    Il faut essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idNaturDoc=$_POST["naturDoc"];

  5. #5
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    ah mais oui, ça marche

    Super merci babacan

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

Discussions similaires

  1. valeur par défaut d'une liste déroulante
    Par emillio dans le forum Excel
    Réponses: 9
    Dernier message: 29/02/2008, 19h12
  2. valeur par defaut sur une liste déroulante
    Par FCL31 dans le forum IHM
    Réponses: 2
    Dernier message: 28/01/2008, 13h33
  3. Réponses: 5
    Dernier message: 26/04/2007, 11h42
  4. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  5. Afficher la valeur choisie d'une liste déroulante dans une textbox
    Par bouchette63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 14h26

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