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 :

Faire un INSERT INTO avec un tableau associatif


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut
    Bonsoir je voulais savoir si il était possible de passer directement un tableau associatif dans une requête SQL Insert ...Into....Value('$nom_tableau associatif') et si non suis-je obligé de passer chaque champ dans mon VALUES? Merci d avance

    Mon code est le suivant:

    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
    while($data2 = mysql_fetch_array($requete)) {
              $table_data[$data2['day']][$data2['os_id']]['day'] = $data2['day'];
              $table_data[$data2['day']][$data2['os_id']]['os_id'] = $data2['os_id'];
              $table_data[$data2['day']][$data2['os_id']]['licence_installed'] = $data2['licence_installed'];
              $table_data[$data2['day']][$data2['os_id']]['licence_connected'] = $data2['licence_connected'];
              $table_data[$data2['day']][$data2['os_id']]['licence_kpi'] = $data2['licence_kpi'];
              $table_data[$data2['day']][$data2['os_id']]['licence_charged'] = $data2['licence_charged'];
            }  
              $portail_final[$db_name] = $table_data;    
          }
     
    //print_r($portail_final);
     
    //Connection à la base operations_statistiques
    $db = mysql_select_db("operations_statistiques") ;
    //Insertion des données dans la table ta_d_licence_by_os_stat
    $insert = "INSERT INTO ta_d_licence_by_os_stat (day, os_id, licence_installed, licence_connected, licence_kpi, licence_charged) 
               VALUES ('".$data2['day']."', '".$data2['os_id']."', '".$data2['licence_installed']."', '".$data2['licence_connected']."', '".$data2['licence_kpi']."', '".$data2['licence_charged']."')";

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 334
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 334
    Billets dans le blog
    17
    Par défaut
    Il faut passer chaque valeur dans le INSERT.

    Si tu as besoin de faire plusieurs INSERT à la suite tu peux regrouper tes requêtes en une seule avec cette syntaxe :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO table(champs)
    VALUES
    (valeurs1),
    (valeurs2),
    (valeurs3) ;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut
    Bonsoir Sébastien,

    Merci pour ta réponse. Donc du coup comme j'ai fait c'est bon ou pas?! (surtout au niveau de la syntaxe de mon VALUES que je doute)

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 334
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 334
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par elo1874 Voir le message
    Donc du coup comme j'ai fait c'est bon ou pas?!
    En l'état en fin de boucle $data2 n'est pas un tableau et vaut FALSE.

    (surtout au niveau de la syntaxe de mon VALUES que je doute)
    Fais un echo $insert.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut
    Voila un peu plus de code pour que tu comprennes

    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
    /*if($db_name != "x") { */
     
        $req2 = mysql_query("SHOW tables LIKE 'ta_d_licence_by_os';");
        $data2 = mysql_fetch_array($req2);
          if($data2[0]) {
     
            //Création de la requête SQL
            $sql = ("SELECT day, os_id, licence_installed, licence_connected, licence_kpi, licence_charged
                    FROM ta_d_licence_by_os");
     
             //Exécution de la requête SQL:
            $requete = mysql_query($sql) or die ('ERREUR ' .mysql_error()) ;
            $table_data = array();
     
            while($data2 = mysql_fetch_array($requete)) {
     
              $table_data[$data2['day']][$data2['os_id']]['day'] = $data2['day'];
              $table_data[$data2['day']][$data2['os_id']]['os_id'] = $data2['os_id'];
              $table_data[$data2['day']][$data2['os_id']]['licence_installed'] = $data2['licence_installed'];
              $table_data[$data2['day']][$data2['os_id']]['licence_connected'] = $data2['licence_connected'];
              $table_data[$data2['day']][$data2['os_id']]['licence_kpi'] = $data2['licence_kpi'];
              $table_data[$data2['day']][$data2['os_id']]['licence_charged'] = $data2['licence_charged'];
            }  
              $portail_final[$db_name] = $table_data;    
          }
      /*}*/
     
    //print_r($portail_final);
     
    //Connection à la base operations_statistiques
    $db = mysql_select_db("operations_statistiques") ;
    //Insertion des données dans la table ta_d_licence_by_os_stat
    $insert = "INSERT INTO ta_d_licence_by_os_stat (day, os_id, licence_installed, licence_connected, licence_kpi, licence_charged) 
               VALUES ('".$data2['day']."', '".$data2['os_id']."', '".$data2['licence_installed']."', '".$data2['licence_connected']."', '".$data2['licence_kpi']."', '".$data2['licence_charged']."')";
     
    //Exécution de la requête SQL:
    $requete1 = mysql_query($insert) or die ('ERREUR ' .mysql_error()) ;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut
    Un echo insert mais où? Désolé mais je vois pas ..

Discussions similaires

  1. [C#]faire 1 Insert Into sur Access
    Par mcay dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2010, 11h47
  2. [Débutant] INSERT INTO avec VALUES + SELECT
    Par Feezdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2006, 10h10
  3. INSERT INTO avec date (asp/access)
    Par ddeee dans le forum ASP
    Réponses: 2
    Dernier message: 30/03/2006, 13h07
  4. [MySQL] Php et INSERT INTO, avec variables
    Par Djwaves dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 20/02/2006, 13h53
  5. INSERT INTO avec une valeur numéroauto
    Par priest69 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 08/11/2005, 15h39

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