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 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 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 : 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
    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 à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 21
    Points
    21
    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 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
    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