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 :

Formulaire dynamique pour plusieurs tables (INSERT INTO) [MySQL]


Sujet :

PHP & Base de données

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 12
    Par défaut Formulaire dynamique pour plusieurs tables (INSERT INTO)
    Bonjour à tous

    Voici mon problème , j'ai crée un seul est unique formulaire pour plusieur table qu'on choisis sur une liste déroulante
    voici le code 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
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    /**********************************************************
      Selection de la table via un menu déroulant
      *********************************************************/
    $sql = "SHOW TABLES FROM repair";
    $result = mysql_query($sql);
     
    if (!$result) {
       echo "Erreur DB, impossible de lister les tables\n";
       echo 'Erreur MySQL : ' . mysql_error();
       exit;
    }
     
    ?>
     
     
    <form method="post" action= "maj.php">
        <select name="choix";>
    <?php
    while ($row = mysql_fetch_row($result)) {
       echo '<option value="' .$row[0] .'" name="table">'.$row[0] . '</option>';
    }
    mysql_free_result($result);
    echo '<br><br><br>';
     
     
    ?>
        </select>
        <td><input type="submit" name="valider" value="valider"></td>
    </form>
            <br>
     
     <?php if (isset ($_POST["valider"])) {
     $choix = $_POST['choix'];
    $_SESSION['choix']=$choix;
        ?>
    <fieldset><legend>Formulaire ajout</legend>
      <form name="loadByForm" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
        <table id="textleft">
            <?php   
        $req="SHOW COLUMNS FROM $choix";
        $result2 = mysql_query($req);$valeur=0;$i=0;
        while ($row2 = mysql_fetch_row($result2)) { $i++;
            ?>
            <td id="titrerow"><?php echo "$row2[0]" ?> </td>
            <td id="modif"><input type="text" size="15" name= <?php "$valeur[$i]" ?> value="<?php echo "$row2[0]";?>"> </td>
          <tr><?php    }?>
            <td></td><td colspan="2"><input type="reset" name="btnRstForm" value="effacer"></td>                     
            <td><input type="submit" name="btnLoadByForm" value="enregistrer"></td>                      
        </tr></table>
      </form> 
    </fieldset>
      <?php

    Et je veux récupérer les valeur pour les insérer dans la base de donnée avec un INSERT INTO

    Voici le code ;

    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
    <?php
    /**********************************************************
      Insertion d'une carte dans la base de données
      *********************************************************/
    echo"<h3>Insertion dans la base de données</h3>"; 
    if (isset ($_POST["btnLoadByForm"])) {// page appelée par le formulaire "loadByForm"       
    extract($_POST);  $choix=$_SESSION['choix'];$req="SHOW COLUMNS FROM $choix";
        $result2 = mysql_query($req);
     
        // Test si la pièce a déja été enregistrée dans la base de données
        $req = "SELECT '$valeur[0]' FROM $choix WHERE $choix.nom='$valeur[0]'";
        $result = mysql_query($req)
          or die ("Accès à la liste des pièces impossible".mysql_error());
     
        if (mysql_num_rows($result) != 0) //pièce déjà enregistrée
          echo "<p id='warning'>La pièce a déjà été enregistrée dans la base de données !!</p>";
        else { // Nouvelle pièce => enregistrement
     
           $sql = "insert into ".$choix." values(";
     
     while ($valeur = mysql_fetch_array($result2)) {
     
    $i++;
    echo $valeur[$i];
     
        $sql .= '"'.$valeur[$i].'")';
        echo $sql;
          $result = mysql_query($sql)
            or die ("Accès à la base de données impossible".mysql_error());
          echo"<p id='ok'>Les données ont été enregistrées avec succès!!</p>";
    } } }
     
      ?>
    cela me donne : insert into cartes values ("varchar(50)")"YES")

    Le problème c'est que j'arrive pas à récupérer les valeurs dans le formulaire

    Le formulaire de la table cartes est sous la forme : voir PJ

    Merci à tous
    Images attachées Images attachées  

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

Discussions similaires

  1. [MySQL] Formulaire pour plusieurs tables
    Par Dark Neggror dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/05/2009, 17h53
  2. Réponses: 1
    Dernier message: 20/06/2007, 03h18
  3. Réponses: 2
    Dernier message: 09/08/2006, 22h04
  4. sous-formulaire : champs provenant plusieurs tables
    Par patbeautifulday1 dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 11h17
  5. [ Design ] commentaires pour plusieurs tables
    Par Celelibi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 31/10/2005, 18h08

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