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 :

Insertion des données de 2 checkbow dans ma base mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    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
    Par défaut Insertion des données de 2 checkbow dans ma base mysql
    Bonjour,

    J'ai un petit problème avec une boucle foreach :

    Situation qui fonctionne :

    J'ai une table LOCATION avec 2 champs : ID_APP | ID_ENV

    Je récupère les données de mon formulaire et je les insèrent en base.

    - 1 ID généré en auto
    - 1 valeur de ma checkbox1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $ID_APP = mysql_insert_id();
     
    foreach(
    $_POST['CHECK_ENV'] AS $checkbox1)
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$checkbox1')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    	}
    Jusque la pas de pb, je récupère le dernier id généré et je l'insère, je récupère la valeur de ma checkbox et je l'insère.

    Ce qui donne :

    ID_APP | ID_ENV
    2 | 4

    Situation qui ne fonctionne pas :

    Je modifie ma table LOCATION et je rajoute 1 champ en plus, soit 3 champs : ID_APP | ID_ENV | ID_SERVER

    Je récupère les données de mon formulaire et je les insères en base.

    - 1 ID généré en auto
    - 1 valeur de ma checkbox1
    - 1 valeur de ma checkbox2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $ID_APP = mysql_insert_id();
     
    foreach(
    $_POST['CHECK_ENV'] AS $checkbox1)
    $_POST['CHECK_SERVER'] AS $checkbox2)
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$checkbox1','$checkbox2')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    	}
    ca ne fonctionne pas ...

    Comment faire pour ajouter mes 2 checkbox dans ma base svp

    Je pense que c'est un problème dans mon foreach mais je n'arrive pas à le résoudre, merci d'avance ...

  2. #2
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    foreach parcourt un tableau, pas deux. Il est possible d'imbriquer les foreach, mais je doute que ce soit ce que tu cherches. On peut voir le formulaire à l'origine des données ?
    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]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Bonjour,
    Dans la requête sql, ne faut-il pas reprendre le nom des champs puis insérer les valeurs dans l'ordre ?
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO nom_table (nom_champ1,nom_champ2, nom_champ3)VALUES('$valeur1','$valeur2','$valeur3')

  4. #4
    Membre éclairé
    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
    Par défaut
    merci pour vos réponses ...

    En fait jai un formulaire add_application.php, quand je creer une nouvelle application, je peux la lier à un ou plusieurs environnements (Mes checkbox)

    et la lier à un ou plusieurs serveurs

    Pour ma liste de checkbox envirronnements j'ai le code ci-dessous :

    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
     
    // -----------------------[CHECKBOX ENV + REQUETE MYSQL]-----------------------
    // database connect
    $connect = mysql_connect("$serveur","$login","$pass"); 
    mysql_select_db("$bd",$connect);
    // Select query
    $sql = ("SELECT * FROM ENV");
    $query=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    // printing table data
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    	while ($result = mysql_fetch_assoc($query))
    	{
    	// selection des enregistrements voulus
    	$ID_ENVOK = $result["ID_ENV"];
    	$NAME_ENVOK = $result["NAME_ENV"];
    // selection de l'id 1 par defaut	en coché
    	$selected="";
    	if ($result['ID_ENV']=="1"){
    	$selected=" checked=\"checked\"";
    	}
    // affichage des valeurs en checkbox
     
    echo '<div class="infoframe">';
            echo "<INPUT TYPE=checkbox NAME=CHECK_ENV[] value=".$ID_ENVOK." ".$selected.">".$NAME_ENVOK."";
    echo '<br />';
    echo '</div>';
    echo '<br />';
    	}
     
    // -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
    Pour ma liste de checkbox serveurs j'ai le code ci-dessous :

    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
     
    // -----------------------[CHECKBOX SERVER + REQUETE MYSQL]-----------------------
    // database connect
    $connect = mysql_connect("$serveur","$login","$pass"); 
    mysql_select_db("$bd",$connect);
    // Select query
    $sql = ("SELECT * FROM SERVER");
    $query=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    // printing table data
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    	while ($result = mysql_fetch_assoc($query))
    	{
    	// selection des enregistrements voulus
    	$ID_SERVEROK = $result["ID_SERVER"];
    	$NAME_SERVEROK = $result["NAME_SERVER"];
    // selection de l'id 1 par defaut	en coché
    	$selected="";
    	if ($result['ID_SERVER']=="1"){
    	$selected=" checked=\"checked\"";
    	}
    // affichage des valeurs en checkbox
     
    echo '<div class="infoframe">';
            echo "<INPUT TYPE=checkbox NAME=CHECK_SERVER[] value=".$ID_SERVEROK." ".$selected.">".$NAME_SERVEROK."";
    echo '<br />';
    echo '</div>';
    echo '<br />';
    	}
    echo '</fieldset>';	
     
    // -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
    Ensuite j'ai ma page de traitement add_application_ok.php

    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
     
    //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();
     
    //insertion des checkbox ENV et SERVER cochés dans la base
    foreach(
    $_POST['CHECK_ENV'] AS $checkbox)
    $_POST['CHECK_SERVER'] AS $checkbox)
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$checkbox1','$checkbox2')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    	}

    si pour tester je recupère juste mes checkbox envirronnements avec le code ci-desous ca fonctionne car jai seulement une liste de checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach(
    $_POST['CHECK_ENV'] AS $checkbox1)
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$checkbox1','toto')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    	}
    Mais si je veux récuperer le contenu de mes deux checkbox ca ne focntionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    foreach(
    $_POST['CHECK_ENV'] AS $checkbox1)
    $_POST['CHECK_SERVER'] AS $checkbox2)
    	{
    $sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$checkbox1','$checkbox2')");
    $res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    	}
    Je ne sais pas si c'est assez explicite .... merci d'avance ...

    En PJ 2 captures decran de mon formulaire.
    Images attachées Images attachées   

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

Discussions similaires

  1. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  2. Insertion des données d'un formulaire dans une base
    Par youssef222 dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2008, 00h16
  3. [PDO] importer des données provenant de SQLite dans la base MySQL?
    Par amy0o0 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/09/2007, 15h11
  4. Réponses: 5
    Dernier message: 27/06/2007, 17h08
  5. insertion de donnée d'un formulaire dans un base mysql
    Par frans2111 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/10/2005, 23h34

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