1 pièce(s) jointe(s)
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:
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:
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