PB php/sql insert formulaire complexe
9 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
PB php/sql insert formulaire complexe
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.
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.
Ca fera 200 euros:
- Code: Tout sélectionner
<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>
...
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:
Comprend pas.....
EDIT : PB réglé, j'vais mis un primary key ou y avais surtout pas besoin.
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.....
EDIT : PB réglé, j'vais mis un primary key ou y avais surtout pas besoin.
- Code: Tout sélectionner
<?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>
";
}
}
?>
Grantome a écrit:
- Code: Tout sélectionner
echo "<h1>Formulaire du GP</h2>";
Hum, je sais pas si tous les navigateurs (et moteurs !) vont apprécier
- Code: Tout sélectionner
echo "<h1>Formulaire du GP</h1>";
J'ai pas regardé le reste.
-

mahefarivony - WRInaute accro

- Messages: 11405
- Inscription: Lun Oct 14, 2002 10:00
Grantome a écrit:Et IE, il est pas difficile. hihi
c'est quoi IE ?
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum