[php]

Résolu
brudao Messages postés 553 Statut Membre -  
brudao Messages postés 553 Statut Membre -
Bonjour,
j'aimerais creer une table dans une bd mysql avec php.
je sais creer cela classiquement mais cette fois ci, je veux creer la table
avec des variables.
c'est à dire le nom du champ est une variable et meme le type,et toutes ses caractéristique.
merci d'avance
Configuration: Windows Vista
Opera 9.62

4 réponses

  1. romano06 Messages postés 104 Statut Membre 8
     
    Un peut plus de détails ne serait pas de refus, dit moi exactement ce que tu veut faire meme si la liste est longue ^^
    0
    1. brudao Messages postés 553 Statut Membre 14
       
      ok merci déjà.
      je veux creer une table a partir de variable:

      un exemple de création classique:
      CREATE TABLE "nom table" (
      champ1 MEDIUMINT UNSIGNED not null AUTO_INCREMENT,
      champ2 TEXT not null ,
      champ3 VARCHAR (40) not null ,
      champ4 VARCHAR (40) ,
      champ5 ENUM ('yes','no') DEFAULT 'no' not null ,
      PRIMARY KEY (champ1)
      )


      jusque là pas de problème pour remplacer nomtable, champ1, champ2 par des variables.
      exemple: $nomtable="ma table", $champ1= " id", $champ2= "nom"...
      toujours pas de problème quand il s'agit de remplacer le nom de la table par une variable et les champs également.
      en ce moment il suffit de faire:
      CREATE TABLE $nomtable (
      $champ1 MEDIUMINT UNSIGNED not null AUTO_INCREMENT,
      $champ2 TEXT not null ,
      ¨......
      )


      le problème maitenant est de changer les types de champ par des variables

      genre remplacer ce que je vais mettre en gras par des variables:
      CREATE TABLE $matable (
      $champ1 MEDIUMINT UNSIGNED not null AUTO_INCREMENT,
      $champ2 TEXT not null ,
      $champ3 VARCHAR (40) not null ,
      $champ4 VARCHAR (40) ,
      $champ5 ENUM ('yes','no') DEFAULT 'no' not null ,
      PRIMARY KEY ($champ1)
      )
      0
  2. romano06 Messages postés 104 Statut Membre 8
     
    Et donc tu n'arrive pas à modifier les champs de variables.
    Si tu veut tu me dit ce que tu veut mettre dans tes champs et je te crée ton fichier SQL que tu auras juste à l'importer dans ta BDD. Et hop le tour est joué :)
    0
  3. toto
     
    Bonsoir

    Une requête mysql est une chaîne de caractères comme une autre. Il n'y a pas plus de problème à remplacer `ma table`par une variable ou remplacer MEDIUMINT UNSIGNED not null AUTO_INCREMENT par une variable, c'est exactement la même chose.
    Attention de ne pas oublier de mettre les noms de tables et de champs entre `` (accents graves, pas apostrophes) sinon tu auras des problèmes avec les noms de table avec un espace dans le nom comme `ma table`.
    Attention aussi à ne pas oublier les espaces quand on met des morceaux de requête bout à bout

    $typechamp1='MEDIUMINT UNSIGNED not null AUTO_INCREMENT';
    $typechamp2='TEXT not null ';
    (je m'arrête aux deux premiers)
    $requete = "$CREATE TABLE `$matable` (";
    $requete .= "`$champ1` $typechamp1, `$champ2` $typechamp2 , `$champ3` VARCHAR (40) not null , `$champ4` VARCHAR (40) , `$champ5` ENUM ('yes','no') DEFAULT 'no' not null , PRIMARY KEY (`$champ1`) )";
    0