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 :

Insérer les valeurs d'un array associatif dans une table mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Insérer les valeurs d'un array associatif dans une table mysql
    Bonjour a tous!
    Je vous sollicite car je n'arrive pas avec mon code à insérer les valeurs de mon tableau dans ma table membres qui contient 3 colonnes: id, pseudo, pass.
    Le problème est qu'il m'insère les valeurs dans une nouvelle entée a chaque fois donc ma table est rempli comme ceci : id1 pseudo = 'sela' et rien dans pass
    puis le pass='bla' mais dans id2 et pas dans la première entrée comme voulu. Je ne sais pas si je suis assez clair donc voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $table = "membres";
     
    $bdd = mysql_connect("localhost","root","root");
     
    mysql_select_db("site",$bdd);
    $tab = array('pseudo'=>'sela','pass'=>'bla');
    foreach($tab as $column=>$value)
    {
    	$sql = "INSERT INTO ".$table."(".$column.") VALUES('$value')" ;
    	$req = mysql_query($sql) or die("Erreur SQL!<br>".$sql.'<br>'.mysql_error());
    }
    mysql_close();
    ?>
    Merci d'avance de m'éclairer un peu !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Un peu tordu, mais voila, le plus simple serait de passer par un outils d'abstraction de données

    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
     
    <?php
    $table = "membres";
     
    $bdd = mysql_connect("localhost","root","root");
     
    mysql_select_db("site",$bdd);
    $tab = array('pseudo'=>'sela','pass'=>'bla');
    $sql = "INSERT INTO ".$table."(";
     
    $count = count($tab);
    $i = 1;
    foreach($tab as $column=>$value)
    {       $virgule = ',';
            if($i==$count){$virgule = '';}
             $col .= $column.$virgule;
             $val .= "'$value'".$virgule;
             $i++;
     
    }
    $sql .= $col.") ";
    $sql .= " VALUES(".$val.")";
     
    $req = mysql_query($sql) or die("Erreur SQL!<br>".$sql.'<br>'.mysql_error());
     
    ?>
    A titre de comparaison avec le Dbal de Doctrine 2, ton code serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $conn = insert($table,$tab);

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour cette réponse je n'avait pas penser à cette façon de faire c'est niquel je vais pouvoir créer une classe pour me faciliter la gestion des tables je débute alors merci encore!

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

Discussions similaires

  1. [MySQL] Enregistrer les valeurs d'un select multiple dans une table mysql
    Par barale61 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/04/2015, 14h58
  2. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  3. Réponses: 10
    Dernier message: 15/12/2006, 07h34
  4. Insérer des données d'un tableau php dans une table mysql
    Par tom43 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/08/2006, 09h38
  5. Réponses: 2
    Dernier message: 04/05/2006, 11h34

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