PB php/sql insert formulaire complexe

WRInaute passionné
Bonsoir,

Je demande car je désespère.

Voici ce que j'ai (c'est un exemple)i:
Une table "azerty" avec 3 champs "pays", "langage" et "nom"
J'ai besoin de renseigner cette table avec un formulaire.
Voici comment doit être le formulaire:

- un champs ou l'on met son pays.
puis cote à cote:
- un champ déroulant ou l'on choisi son langage.
- un champs ou l'on entre son nom.
On doit pouvoir (grâce à un bouton "entrée supplémentaire") rajouter autant de fois que l'on veux les deux derniers champs si on à plusieurs entrée pour le même pays.
Puis lors de la validation, que la table soit renseigné de 1 ligne à x lignes.


Merci.
 
WRInaute discret
Ca fera 200 euros:
Code:
<html>
<body>
<?php
if ( isset($_POST['submit'])) {
	// Process input
	print_r($_POST);
	print('<br/>');
	print('nb lines '.count($_POST['lang']));
} else {
	// display form
	$nbline = isset($_POST['lang'])?count($_POST['lang']):1;
	if ( isset($_POST['addoneline'])) {
		$nbline +=1;
		}
	// Default values
	$pays = isset($_POST['pays'])?$_POST['pays']:"France";
	$lang = $_POST['lang'];
	$nom = $_POST['nom'];
?>
<fieldset>
 <form action="test.php" method="post">
  <input type="text" name="pays" value="<?php echo $pays; ?>" /> <br/>
<?php 
	for ($i = 1; $i <= $nbline; $i++) {
?>
   <select name="lang[]">
    <option label="Français"<?php if ($lang[$i-1]=='Français') {echo(' selected');}?>>Français</option>
    <option label="Anglais"<?php if ($lang[$i-1]=='Anglais') {echo(' selected');}?>>Anglais</option>
  </select>
  <input type="text" name="nom[]" value="<?php echo $nom[$i-1]; ?>" /> <br/>
<?php
   
	} //end loop for
?>
  <input name="addoneline" type="submit" value="Add one line"/>
  <input name="submit" type="submit" value="Submit"/>
 </form>
</fieldset>

<?php 
}
?>
</body>
</html>
 
WRInaute passionné
Excellent, mais...
Comment insérer ce tableau dans ma table ?

Après isset submit, j'en conviens, mais je n'y arrive pas.
 
WRInaute passionné
...

Bon ,j'ai fait ça, mais l'insert ne veux pas fonctionner.
Si je choisi 1 ligne, ça marche, mais si j'en dhoisi 2, voici le message:
Erreur SQL !INSERT INTO gp_2004 (gp, num, pays, nom, team, pneu, chassis, temps, stop, mt, class_mt) VALUES ('aaaa', '1', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a')
Duplicate entry 'aaaa' for key 1

Comprend pas..... :cry:

EDIT : PB réglé, j'vais mis un primary key ou y avais surtout pas besoin.



Code:
<?php

//connexion base
include ("./data/config.php");
$db = mysql_connect($serveur, $login, $pass); 
mysql_select_db($base,$db);

echo "<h1>Formulaire du GP</h2>";

if (isset($valide))
	{
		for ($i=0; $i<$nb; $i++)
			{
				$num = $i +1;
				$sql = "INSERT INTO gp_2004 (gp, num, pays, nom, team, pneu, chassis, temps, stop, mt, class_mt) VALUES ('$gp', '$num', '$pays[$i]', '$nom[$i], '$team[$i], '$pneu[$i], '$chassis[$i], '$temps[$i], '$stop[$i], '$mt[$i], '$class_mt[$i]')";
				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
			}
		echo "i=$i, nb=$nb, gp=$gp, pays0=$pays[0], num=$num";
	}
else
	{
		if (! $nb)
			{
				echo "
				<form action=\"$PHP_SELF\" method=\"post\">
				Nb d'enregistrements à ajouter.
				<input type=\"text\" name=\"nb\" value=2>
				<input type=\"submit\" value=\"Valider\">
				</form>
				";
			}
		else
			{
				echo "
				<form action=\"$PHP_SELF\" method=\"post\">
				Saisir les $nb enregistrements, puis valider
				Nom du GP<input type=\"text\" name=\"gp\" value=\"\">
				<table>
				<tr>
				<td>Pays</td>
				<td>Nom</td>
				<td>Team</td>
				<td>Pneu</td>
				<td>Chassis</td>
				<td>Temps</td>
				<td>Stop</td>
				<td>MT</td>
				<td>Class MT</td>
				</tr>
				";
				for ($i=0; $i<$nb; $i++)
					{
						echo "
						<tr>
						<td><input type=\"text\" name=\"pays[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"nom[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"team[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"pneu[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"chassis[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"temps[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"stop[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"mt[]\" value=\"\"></td>
						<td><input type=\"text\" name=\"class_mt[]\" value=\"\"></td>
						</tr>
						";
					}
				echo "
				</table>
				<input type=\"hidden\" name=\"nb\" value=\"$nb\">
				<input type=\"submit\" name=\"valide\" value=\"Enregistrer\">
				</form>
				";
			}
	}

?>
 
WRInaute passionné
Ah tiens..... héhéh avais pas vu.

Tout façon, c'est formulaire pour l'administration du site donc y a que moi qui s'en sert gniarc gniarc gniarc.

Et IE, il est pas difficile. hihi
 
Discussions similaires
Haut