PB php/sql insert formulaire complexe

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: Ven Jan 16, 2004 19:47

PB php/sql insert formulaire complexe

Message le Mar Nov 09, 2004 23:27

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.

tradjus
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 192
Inscription: Sam Avr 03, 2004 23:22

Message le Mer Nov 10, 2004 14:14

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>

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: Ven Jan 16, 2004 19:47

Message le Jeu Nov 11, 2004 1:36

Excellent, mais...
Comment insérer ce tableau dans ma table ?

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

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: Ven Jan 16, 2004 19:47

...

Message le Jeu Nov 11, 2004 2:52

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: 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>
            ";
         }
   }

?>


PyRoFLo
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Mar 24, 2004 14:49

Message le Jeu Nov 11, 2004 16:16

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 :wink:

Code: Tout sélectionner
echo "<h1>Formulaire du GP</h1>";

J'ai pas regardé le reste.

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: Ven Jan 16, 2004 19:47

Message le Jeu Nov 11, 2004 16:28

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


PyRoFLo
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Mar 24, 2004 14:49

Message le Jeu Nov 11, 2004 16:30

:lol:

Mieux vaut prendre de bonnes habitudes :wink:


mahefarivony
WRInaute accro
WRInaute accro
 
Messages: 11405
Inscription: Lun Oct 14, 2002 10:00

Message le Jeu Nov 11, 2004 17:22

Grantome a écrit:Et IE, il est pas difficile. hihi

c'est quoi IE ? :-)

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: Ven Jan 16, 2004 19:47

...

Message le Ven Nov 12, 2004 23:50

mahefarivony a écrit:
Grantome a écrit:Et IE, il est pas difficile. hihi

c'est quoi IE ? :-)


Voilà, y r'vient, il est désagréable . :evil:


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