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

Langage PHP Discussion :

Insertion de plusieurs checkbox dans ma base


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut Insertion de plusieurs checkbox dans ma base
    Bonjour,

    J'ai réalisé un site en php pour recenser les applications et les serveurs de ma société :

    J'ai deux pages add_application.php (formulaire) et add_application_ok.php (traitement des données de mon formulaire)

    Lorsque je creer une application je peux l'associer à un ou plusieurs serveurs et définir un envirronnement. Jusque la pas de problème.

    cf capture d'écran.

    add_application.php (formulaire)

    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
     
    echo '<form method="post" action="add_application_ok.php">';
    echo 'Nom : <br> <input type="text" name="NAME_APP" style="text-transform: uppercase"/><br/>';
     
    // -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
    echo '<fieldset>';
    echo '<legend>Lier l\'application à un serveur (Par défaut AUCUN) : </legend>';
     
    // database connect
    $connect = mysql_connect("$serveur","$login","$pass"); 
    mysql_select_db("$bd",$connect);
     
    // Select query pour ma liste de serveurs
    $sql = ("SELECT * FROM SERVER");
    $query=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    	while ($result = mysql_fetch_assoc($query))
    	{
    // affichage des noms de serveurs en checkbox
    		echo '<div class="infoframe">';
            echo "<INPUT TYPE=checkbox NAME=CHECK_SERVER[] value=".$result["ID_SERVER"].">".$result["NAME_SERVER"]."";
     
     
    		// Select query pour ma liste d'environnements
    		$sql3 = ("SELECT * FROM ENV");
    		$query3=mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
     
    		// on fait une boucle qui va faire un tour pour chaque enregistrement
    		while ($result3 = mysql_fetch_assoc($query3))
    		{
    			echo "<INPUT TYPE=checkbox NAME=CHECK_ENV[] value=".$result3["ID_ENV"].">".$result3["NAME_ENV"]."";
    		}	
     
     
     
     
     
    		echo '<br />';
    		echo '</div>';
    		echo '<br />';
    	}
    echo '</fieldset>';	
     
     
    // -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
     
    echo '<input type="submit" value="Valider" />';
    echo '</form>';
    add_application_ok.php (traitement des données de mon formulaire)

    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
     
    <?php 
    //Recuperation valeurs formulaire
    $NAME_APP = $_POST['NAME_APP'];
     
    // database connect infos
    include "config.php";
     
    // database connect
    $connect = mysql_connect("$serveur","$login","$pass"); 
    mysql_select_db("$bd",$connect);
    ?>
     
    //insertion table APPLICATION
    $sql1 = ("INSERT INTO APPLICATION (NAME_APP, DESC_APP, DOC_APP, COM_APP, CODE_APP, DATE_APP, IP_REQ_APP) VALUES('$NAME_APP','$DESC_APP', '$DOC_APP', '$COM_APP', '$CODE_APP', '$datetime', '$IP_REQ_APP')");
    $res1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
     
    //recupération du dernier id généré pour reutilisation apres
    $ID_APP = mysql_insert_id();
     
    foreach(
    $_POST['CHECK_SERVER'] AS $checkbox1)
     
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$ID_ENV','$checkbox1')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
     
    	}
    Si je coche q'un seul serveur et je lui associe un environnement, pas de problème je peux inserer les données dans ma table :

    ID_APP ID_ENV ID_SERVER

    Ex cf capture d'écran :

    Je selectione le serveur FRPIVSRV0720 et je l'associe à l'envirronnemnt de PRODUCTION.

    avec mon foreach

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach(
    $_POST['CHECK_SERVER'] AS $checkbox1)
     
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$ID_ENV','$checkbox1')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
     
    	}
    Maintenant comment faire si je veux associer l'application XXX a plusieurs serveurs ?

    ex :

    FRPIVSRV0720 envirronnement de PRODUCTION.

    FRPIVSRV1563 envirronnement de RECETTE.

    Ca ne fonctionne pas ...

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 174
    Points
    174
    Par défaut
    Bonjour,

    un exemple avec un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="id_serveur[]" size="8" multiple>
    <option value="serv1">serveur 1</option>
    <option value="serv2">serveur 2</option>
    <option value="serv3">serveur 3</option>
    </select>
    <input type="submit" name="Submit" value="Envoyer">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "Les serveurs sélectionnés sont :<br>";
    foreach ( $_REQUEST['id_serveur'] as $option) {
    echo "$option <br>";
    }
    Ensuite tu fais un tableau multidimensionnel.

    par exemple en modifiant l'echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $mes_app=array();
    $i=0;
    foreach ( $_REQUEST['id_serveur'] as $option) {
    $mes_app[$id_app][$i]=$option;
    $i++;
    }
    ou en version objet (mais la c'est freestyle, j'ai jamais fait)que tu stock dans ta bdd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class app{
    //nombre de variables serveur
    public $nb_serveur;
    for($i=0;$i<$nb_serveur;$i++){
    public $serv.$i;}
    }
     
    }
    Bon codage.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 174
    Points
    174
    Par défaut
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class app_1{
    private $serveur 1;//booleen
    private $serveur 2;//idem
    //etc autant que de serveur sur 1 si present sur 0 si absent

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

Discussions similaires

  1. [MySQL] Inserer plusieurs checkbox dans ma base
    Par snorky94 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/09/2012, 18h04
  2. Insertion D'une Image Dans Une Base De Donnees Sqlsever
    Par emperreur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/03/2007, 21h31
  3. Récuperer valeurs d'une checkbox dans la base Mysql
    Par pod1978 dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 10/03/2006, 14h29
  4. [Conception] insertion sql en php, dans une base de donnée ?
    Par artotal dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 24/10/2005, 04h34
  5. [C#] Faire un INSERT en même temps dans 2 bases differentes
    Par Pingva dans le forum Accès aux données
    Réponses: 8
    Dernier message: 09/09/2004, 12h07

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