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 avec plusieurs fois le même champ et récupération des valeurs [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Septembre 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Formulaire avec plusieurs fois le même champ et récupération des valeurs
    Bonjour,

    pour mon premier message je vais essayer d'être clair (car ça ne l'ai déjà pas forcément dans ma tête ), je suis un amateur et je souhaite insérer dans une table mysql, les résultats d'un championnat.
    J'ai donc créé un formulaire dans lequel je vais chercher notamment mes noms de club dans une autre table et j'ai fait une boucle while pour les 7 matchs par journée de championnat:

    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
    <h2>Formulaire ajout journee</h2> 
     
     
     
    <form action="insertion_journee.php" method="POST" enctype="multipart/form-data"> 
     
    Journee <input type="text" name="Jour" /><BR>
     
     
    <p>Saison: <select name="saison">;
    <?php
    $sql = "SELECT sai_nom FROM saison WHERE sai_encours='o'";
    $res = mysql_query($sql)or die(mysql_error());
    $val=mysql_fetch_array($res);
    echo "<option>".$val["sai_nom"]."</option>\n";
    ?>
    </select></p> 
     
    <?php
    $i=1;
    while ($i!=8){
    	echo "Match".$i;
    	echo '<select name="clb_nom">';
    	$sql = "SELECT * FROM clb";
    	$res = mysql_query($sql)or die(mysql_error());
    	while ($val=mysql_fetch_array($res)){
    			echo "<option>".$val["clb_nom"]."</option>\n";
    	}
    	echo "</select>";	
     
    	echo '<select name="clb_nom2">';	
    	$sql = "SELECT * FROM clb";
    	$res = mysql_query($sql)or die(mysql_error());
    	while ($val=mysql_fetch_array($res)){
    			echo "<option>".$val["clb_nom"]."</option>\n";
    	}
    	echo "</select>";		
    	echo 'Scoref1:<input type="text" name="sco_dom" />';
    	echo 'Scoref2:<input type="text" name="sco_ext" />';
    	echo 'NbEss1:<input type="text" name="ess_dom" />';
    	echo 'NbEss2:<input type="text" name="ess_ext" /><br>';		
    	$i++ ;
    }
     
    ?>
     
    <br /><br /> 
    <input type="submit" name="ok" value="Envoyer"> 
    </form>

    Dans mes autres formulaires habituellement je n'ai qu'une valeur par champ de formulaire donc pas de souci mais là comme elles sont multipliées par 7 je n'arrive pas à voir comment récupérer les valeurs du formulaire pour les insérer dans ma table.

    Je suis preneur de toutes pistes.

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    C'est simple tu crées autant d'éléments html que nécessaire en donnant à chacun un nom différent.

    Voici un exemple. J'ai tapé ce code sans le tester. Il peut donc y avoir des erreurs mais l'idée est celle-là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form action="toto.php" method="POST" enctype="multipart/form-data">
    <?php
    for($i=1;$i<=10;$i++)
    {
      print "Champ $i :<input type='text' name='var$i' /><br/>";
    }
    ?>
    <br/>
    <input type="submit" name="ok" value="Envoyer"> 
    </form>
    Dans toto.php le tableau $_POST contient toutes les variables du formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    for($i=1;$i<=10;$i++)
    {
      $var = "var$i";
      print "Champ $i :".$_POST[$var]."<br/>";
    }
    ?>
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    OU bien tu utilises un tableau de champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form action="toto.php" method="POST" enctype="multipart/form-data">
    <?php
    for($i=1;$i<=10;$i++)
    {
      print "Champ $i :<input type='text' name='var[]' /><br/>";
    }
    ?>
    <br/>
    <input type="submit" name="ok" value="Envoyer"> 
    </form>
    à traiter par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($_POST['var'] as $var)
    {
      print "Champ $i :".$var."<br/>";
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Septembre 2016
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    je suis désolé de ne pas avoir répondu plus tôt, j'ai donc appliqué la méthode de badaze et cela fonctionne parfaitement c'était tout simple mais je n'y avais pas pensé.

    Merci à vous 2 pour vos réponses.

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

Discussions similaires

  1. Plusieurs fois le même champs dans un formulaire
    Par portedaix dans le forum IHM
    Réponses: 5
    Dernier message: 02/09/2014, 21h03
  2. selectionner plusieurs fois un même champ d'une combobox
    Par awalter1 dans le forum GTK+ avec Python
    Réponses: 1
    Dernier message: 31/07/2012, 18h30
  3. Réponses: 4
    Dernier message: 04/09/2007, 08h55
  4. Réponses: 3
    Dernier message: 19/04/2007, 17h19
  5. SELECT plusieurs fois les mêmes champs
    Par aergil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/02/2005, 12h10

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