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 :

Création dynamique de champs dans une table


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 47
    Points
    47
    Par défaut Création dynamique de champs dans une table
    Bonjour à tous,

    Je voudais créer dynamiquement des champs dans une table.
    Pour cela j'ai inseré une boucle while dans une requête creation de table mais j'ai une erreur de syntaxe.
    Je me pose la question de savoir si ce que je ve faire est possible

    Ma requête :
    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
     
    $creation_table=mysql_query("CREATE TABLE IF NOT EXISTS `parc_option_test` (
      `code_groupe` text NOT NULL,
      `code_entreprise` text NOT NULL,
      `compte_client` text NOT NULL,
      `nom_abonne` text NOT NULL,
      `utilisateur` text NOT NULL,
      `reference` text NOT NULL,
      `gsm` text NOT NULL,
      `num_sim` text NOT NULL,
      `num_sim_jumelle` text NOT NULL,
      `num_gsn_carte_jumelle` text NOT NULL,
      `num_fax` text NOT NULL,
      `num_data` text NOT NULL,
      `num_imei` text NOT NULL,
      `code_tarif` text NOT NULL,
      `code_package` text NOT NULL,
      `date_connexion` date NOT NULL,
      `date_engagement` date NOT NULL,
      `duree_contrat` text NOT NULL,
      ". while ($uneligne=odbc_fetch_array($rq_cpt)) 
    		{  
    		echo"`".$uneligne[0]."` text NOT NULL," ;
    		} ." 
      `date_deconnexion` date NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
    Mon Message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_WHILE in
    Merci d'avance pour vos réponse

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je te propose une piste à creuser, sans être sur de mon coup.

    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
     
    // On mets le resultat dans une variable pour faciliter l'ecriture de la requete
    while ($uneligne=odbc_fetch_array($rq_cpt)) 
    {  
    $newLigne = $uneligne[0]  ;
    } 
     
    $creation_table = "CREATE TABLE IF NOT EXISTS `parc_option_test` (
      `code_groupe` text NOT NULL,
      `code_entreprise` text NOT NULL,
      `compte_client` text NOT NULL,
      `nom_abonne` text NOT NULL,
      `utilisateur` text NOT NULL,
      `reference` text NOT NULL,
      `gsm` text NOT NULL,
      `num_sim` text NOT NULL,
      `num_sim_jumelle` text NOT NULL,
      `num_gsn_carte_jumelle` text NOT NULL,
      `num_fax` text NOT NULL,
      `num_data` text NOT NULL,
      `num_imei` text NOT NULL,
      `code_tarif` text NOT NULL,
      `code_package` text NOT NULL,
      `date_connexion` date NOT NULL,
      `date_engagement` date NOT NULL,
      `duree_contrat` text NOT NULL,
      `$newLigne` text NOT NULL,
      `date_deconnexion` date NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1";
     
     mysql_query($creation_table);
    Je prends cela comme un exercice, j'éspère que quelqu'un de plus experimenté te viendra en aide.

  3. #3
    Membre averti Avatar de Nheo_
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 323
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    Voici une solution :

    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
    $requete = "CREATE TABLE IF NOT EXISTS `parc_option_test` (
      `code_groupe` text NOT NULL,
      `code_entreprise` text NOT NULL,
      `compte_client` text NOT NULL,
      `nom_abonne` text NOT NULL,
      `utilisateur` text NOT NULL,
      `reference` text NOT NULL,
      `gsm` text NOT NULL,
      `num_sim` text NOT NULL,
      `num_sim_jumelle` text NOT NULL,
      `num_gsn_carte_jumelle` text NOT NULL,
      `num_fax` text NOT NULL,
      `num_data` text NOT NULL,
      `num_imei` text NOT NULL,
      `code_tarif` text NOT NULL,
      `code_package` text NOT NULL,
      `date_connexion` date NOT NULL,
      `date_engagement` date NOT NULL,
      `duree_contrat` text NOT NULL,";
     
    while ($uneligne=odbc_fetch_array($rq_cpt)) 
    {  
         $requete.= "`".$uneligne[0]."` text NOT NULL," ;
    }
     
    $requete .= "`date_deconnexion` date NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
     
    $creation_table=mysql_query($requete);

Discussions similaires

  1. [CakePHP] Modification de champs dans une table à chaque création d'un nouveau champs
    Par JangoBtz dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/03/2014, 15h50
  2. [AC-2003] Création de nouveaux champs dans une table en VBA
    Par lambith dans le forum VBA Access
    Réponses: 24
    Dernier message: 31/03/2013, 09h56
  3. Création d'un champ dans une table via VBA
    Par Oliv'83 dans le forum VBA Access
    Réponses: 5
    Dernier message: 16/08/2010, 09h58
  4. Réponses: 7
    Dernier message: 16/10/2006, 18h40
  5. Réponses: 5
    Dernier message: 25/07/2005, 14h03

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