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 :

INSERT INTO avec une boucle [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut INSERT INTO avec une boucle
    ce code marche mais je pense qu'il y'a un truc plus juste que ça vu que je réécris la même chose dans les case1 et 2 ya juste le nom de la table qui change!!!
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <?php
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=bitumepurs', 'root', '');
    }
    catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
    for($j=1;$j<=2;$j++)
    { 
    switch ($j) 
    {
    case 1: 
     
    $req = $bdd->prepare('INSERT INTO a40_50 ( 
    stock_initial,
    ent_importation,
    ent_rav_naftal,
    ent_rav_tiers,
    ent_rav_clients,
    ent_formulations,
    ent_excedents,
    sor_formulations,
    sor_ventes,
    sor_transferts,
    sor_consom_interne,
    sor_coul_pertes,
    stock_final) VALUES(
    :stock_initial,
    :ent_importation,
    :ent_rav_naftal,
    :ent_rav_tiers,
    :ent_rav_clients,
    :ent_formulations,
    :ent_excedents,
    :sor_formulations,
    :sor_ventes,
    :sor_transferts,
    :sor_consom_interne,
    :sor_coul_pertes,
    :stock_final)');
    break;
    case 2: 
    $req = $bdd->prepare('INSERT INTO a0_1 ( 
    stock_initial,
    ent_importation,
    ent_rav_naftal,
    ent_rav_tiers,
    ent_rav_clients,
    ent_formulations,
    ent_excedents,
    sor_formulations,
    sor_ventes,
    sor_transferts,
    sor_consom_interne,
    sor_coul_pertes,
    stock_final) VALUES(
    :stock_initial,
    :ent_importation,
    :ent_rav_naftal,
    :ent_rav_tiers,
    :ent_rav_clients,
    :ent_formulations,
    :ent_excedents,
    :sor_formulations,
    :sor_ventes,
    :sor_transferts,
    :sor_consom_interne,
    :sor_coul_pertes,
    :stock_final)');
    break;
    }
     
     
     
     
     
     
     
     
    $req->execute(array('stock_initial' => $_POST['l1c'.$j],
    'ent_importation'    => $_POST['l2c'.$j],
    'ent_rav_naftal'     => $_POST['l3c'.$j],
    'ent_rav_tiers'      => $_POST['l4c'.$j],
    'ent_rav_clients'    => $_POST['l5c'.$j],
    'ent_formulations'   => $_POST['l6c'.$j],
    'ent_excedents'      => $_POST['l7c'.$j],
    'sor_formulations'   => $_POST['l8c'.$j],
    'sor_ventes'         => $_POST['l9c'.$j],
    'sor_transferts'     => $_POST['l10c'.$j],
    'sor_consom_interne' => $_POST['l11c'.$j],
    'sor_coul_pertes'    => $_POST['l12c'.$j],
    'stock_final'        => $_POST['l13c'.$j]));
     
    }
    echo 'données on bien été ajouté !';
    ?>

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    je factoriserai comme ça :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=bitumepurs', 'root', '');
    }
    catch (Exception $e)
    {
        die('Erreur : ' . $e->getMessage());
    }
     
    $save =
        function($table, $i) use ($bdd)
        {
            $sql =
    <<<SQL
    INSERT INTO {$table} ( 
        stock_initial,
        ent_importation,
        ent_rav_naftal,
        ent_rav_tiers,
        ent_rav_clients,
        ent_formulations,
        ent_excedents,
        sor_formulations,
        sor_ventes,
        sor_transferts,
        sor_consom_interne,
        sor_coul_pertes,
        stock_final
    ) VALUES (
        :stock_initial,
        :ent_importation,
        :ent_rav_naftal,
        :ent_rav_tiers,
        :ent_rav_clients,
        :ent_formulations,
        :ent_excedents,
        :sor_formulations,
        :sor_ventes,
        :sor_transferts,
        :sor_consom_interne,
        :sor_coul_pertes,
        :stock_final
    )
    SQL;
            $res = $bdd->prepare($sql);
            // on suppose que les valeurs du $_POST existent toutes
            return $res->execute(array(
                ':stock_initial'      => $_POST['l1c'.$i],
                ':ent_importation'    => $_POST['l2c'.$i],
                ':ent_rav_naftal'     => $_POST['l3c'.$i],
                ':ent_rav_tiers'      => $_POST['l4c'.$i],
                ':ent_rav_clients'    => $_POST['l5c'.$i],
                ':ent_formulations'   => $_POST['l6c'.$i],
                ':ent_excedents'      => $_POST['l7c'.$i],
                ':sor_formulations'   => $_POST['l8c'.$i],
                ':sor_ventes'         => $_POST['l9c'.$i],
                ':sor_transferts'     => $_POST['l10c'.$i],
                ':sor_consom_interne' => $_POST['l11c'.$i],
                ':sor_coul_pertes'    => $_POST['l12c'.$i],
                ':stock_final'        => $_POST['l13c'.$i]
            ));
        };
     
    if ($save('a40_50', 1))
    {
        echo 'données on bien été ajouté !';
    }
     
    if ($save('a0_1', 2))
    {
        echo 'données on bien été ajouté !';
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci Monsieur rawsrc

    j'ai rajouté une boucle for et un switch dans chaque case le nom de la table a qui je vais faire appelle

    j'ai 18 table la y'a pas un autre moyen de faire appelle aux tables appart le switch?
    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
     
    for($i=1;$i<=2;$i++)
    {
     
    switch ($i) 
    {
    case 1:
     $table='a40_50';
    break;
    case 2:  
     $table='a0_1';
     break;
    }
     
       $save($table, $i);
     
     
    }

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $tables = array(
        1 => 'a40_50',  // on définit la base du tableau 
        'a0_1',
        'a0_2',
        /* ... */
    );
     
    foreach ($tables as $k => $t)
    {
        if ($save($t, $k))
        {
            echo 'données on bien été ajouté !';
        }
    }

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/01/2011, 10h38
  2. [Toutes versions] INSERT INTO avec une Clause Where
    Par casavba dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/02/2010, 21h16
  3. [VB.NET]Utiliser un INSERT INTO avec une VIew Access
    Par Ashleyriot dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/11/2006, 18h31
  4. insert into avec une date
    Par LeXo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/11/2006, 22h08
  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