[php]

Résolu/Fermé
brudao Messages postés 524 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 octobre 2014 - 7 nov. 2008 à 15:30
brudao Messages postés 524 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 octobre 2014 - 8 nov. 2008 à 17:51
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
A voir également:

4 réponses

romano06 Messages postés 97 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 4 mai 2009 8
7 nov. 2008 à 16:33
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
brudao Messages postés 524 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 octobre 2014 14
7 nov. 2008 à 19:18
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
romano06 Messages postés 97 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 4 mai 2009 8
7 nov. 2008 à 20:19
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
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
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
7 nov. 2008 à 22:36
0
brudao Messages postés 524 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 octobre 2014 14
8 nov. 2008 à 17:51
merci ça marche! je savais pas que je pouvais les remplacer par des variables.
0