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 :

<select> enregistrer deux données en même temps


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut <select> enregistrer deux données en même temps
    Bonjour à tous

    j'ai un formulaire, une page de traitement et deux tables :

    • le formulaire se nomme "frm".
    • la page de traitement se nomme "ajout".
    • 1ere bdd se nomme "liste", qui comporte 3 colonnes "id" "nom" "chiffre".
    • 2eme bdd se nomme "carnet" qui comporte 6 colonnes "id" "nom" "chiffre" "sexe" "taille" "poid".



    voici le script du formulaire :

    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
    44
    45
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>frm</title>
    </head>
     
     
    <body>
    <form name="modif" action="ajout.php" method="POST">
     
     
    <select name="nom" id="nom"><option value=""></option>
      <?php
    		  mysqli_free_result($result);
              }
              ?>
      <!-- debut zone vierge -->
      <optgroup label=""> </optgroup>
      <optgroup label="Listes noms" style="color:#990000"> </optgroup>
      <!-- fin zone vierge -->
      <!-- chargement des noms dans la BDD liste -->
      <?php
    		  include('../../config.php');
    		  //modification des caractères avec accents
    		  mysqli_query($conn,"SET CHARACTER SET 'utf8'");
    		  mysqli_query($conn,"SET SESSION collation_connection ='utf8_unicode_ci'");
              $select = "select * FROM liste";
    		  $result = $conn->query($select);
    		  $total = mysqli_num_rows($result);
              while($data = mysqli_fetch_array($result))
              {
              ?>
      <option value="<?php echo $data['nom'];?>"><?php echo $data['nom']; ?></option>
      		  <?php
              }
              ?>
    </select>
    <br /><br />
    <input type="submit" value="Valider" />
    </form>
    </body>
    </html>
    Le <select> du formulaire récupère les données dans la bdd "liste"

    mon bouton submit POST mes données vers ma page "ajout.php" afin d'enregistrer mon choix du <select> en l'occurrence un nom dans la liste dans la bdd "carnet".

    Tout fonctionne bien.
    Cependant, en sélectionnant un nom dans ma liste, j'aimerai qu'il enregistre le nom sélectionner dans carnet (ce qui se passe) mais aussi la donnée chiffre qui correspond au nom sélectionné

    En gros j'aimerai qu'en sélectionnant un nom, on puisse enregistrer dans "carnet" le nom et le chiffre qui lui correspond.

    exemple : dans la bdd liste -->

    1 -- TOTO -- 124
    2 -- LULU -- 342
    3 -- ZOZO -- 042
    etc .......

    J'aimerai en sélectionnant LULU par exemple via ma page ajout qu'il enregistre dans ma bdd "carnet" LULU dans la colonne "nom" et 342 dans la colonne "chiffre"

    Pourriez vous m'aider s'il vous plait

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 102
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 102
    Points : 8 212
    Points
    8 212
    Billets dans le blog
    17
    Par défaut
    j'aimerai qu'il enregistre le nom sélectionner dans carnet (ce qui se passe) mais aussi la donnée chiffre qui correspond au nom sélectionné
    L'information est déjà dans la table "liste", et il faut éviter de générer des données redondantes.

    Ton <select> doit transmettre un ID (et pas un nom). Grâce à cet ID tu sauras qui a été sélectionné. Ensuite tu pourras récupérer les données grâce à une jointure.

    liste (liste de quoi ? il faut donner des noms pertinents à tes tables)
    -----------
    id
    nom
    chiffre

    carnet (idem)
    -----------
    id
    nom
    chiffre
    sexe
    taille
    poid
    liste_id -- Clef étrangère vers liste.id

    Et à voir si il est vraiment utile d'avoir 2 tables et/ou si les colonnes sont bien placées.

    Ensuite pour croiser les données :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ALL ...
    FROM liste
    INNER JOIN carnet ON liste.id = carnet.liste_id
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut
    Merci Séb

    Je n'ai jamais travaillé comme cela je vais essayer

    Encore merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/07/2017, 11h57
  2. [AC-2007] ouvrir deux bases de données en même temps [Résolu]
    Par safa-ini dans le forum Access
    Réponses: 6
    Dernier message: 03/03/2014, 11h35
  3. [AC-2007] Enregistrer dans deux tables en même temps.
    Par vadorequest dans le forum IHM
    Réponses: 4
    Dernier message: 24/02/2011, 09h09
  4. Réponses: 13
    Dernier message: 10/12/2005, 13h34
  5. [MySQL] Se connecter à deux base de données en même temps ??
    Par leo13 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/01/2005, 10h36

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