MYSQL ajout automatique de champs dans ma table

WRInaute occasionnel
Bonjour,

j'ai un formulaire sur lequel l'utilisateur peut ajouter des champs de texte a sa guise le nom du champs de texte reste le même et s'incrémente de 1 à chaque ajout.
jusque la tout va bien.

Mon problème se pose lors de la récupération des données je souhaite insérer les données dans ma table et créer automatiquement les champs inexistants de la table.

Exemple : l'utilisateur saisis ses données champs1, champs2, champs3
et dans ma table je n'ai que le champs champs1.
Comment faire pour ajouter champs2, champs3 automatiquement dans ma table?

Merci pour votre aide et vos précieux conseils.
 
WRInaute accro
Code:
ALTER TABLE `taTable` ADD `tonChamp` VARCHAR (255) NOT NULL ;

Note que j'ai mis VARCHAR par défaut. Mais je te conseille de proposer de changer ce type.
 
WRInaute discret
kazhar a dit:
Code:
ALTER TABLE `taTable` ADD `tonChamp` VARCHAR (255) NOT NULL ;

Note que j'ai mis VARCHAR par défaut. Mais je te conseille de proposer de changer ce type.

ou alors tu crées une table avec le nb max de champs possible
et en clé primaire ya bien sur l'id de l'utilisateur
 
WRInaute occasionnel
ok pour le alter table add que je connaissais, mais ce que je cherche a faire c'est créer des champs automatiquement dans ma table en fonction du nombre de champs utilisés par l'utilisateur lors dela saisie de son formulaire.
 
WRInaute discret
webac a dit:
ok pour le alter table add que je connaissais, mais ce que je cherche a faire c'est créer des champs automatiquement dans ma table en fonction du nombre de champs utilisés par l'utilisateur lors dela saisie de son formulaire.

mais pourquoi vouloir créer des tables spécifiques en fonction des utilisateurs ?
 
WRInaute accro
idem, j'vois pas l'utilité alors qui est si simple de passer par un tableau php et n'utiliser qu'un seul champ mysql.

Cela ira bien plus vite en temp machine et t'evitera l'aspirine!
 
WRInaute accro
..Et de devoir faire gaffe si tu as des requetes antérieures d'insertion de champs dans ces nouvelles tables ... moi non plus je ne vois pas l'utilité.
Si tu veux pouvoir enregistrer des éléments dont le nombre diffère selon l'utilisateur, Vaut mieux jouer avec une deuxième table.

Première table user

id_user| nom | prenom | etc...
1 |Duran| Pierre | ...
2 | Dupond | Etienne | ...

Deuxième table champ

id_champ | champ | valeur | id_user
1 | couleur| verte | 1
2 | prix | pas cher| 1
3 | volant | moumoute | 1
4 | couleur | bleue | 2
5 | volant | cuir | 2
 
WRInaute occasionnel
Je sais que je réponds un peu tard mais j'éspere que vous m'apporterez un peu plus de détails car j'avoue que je ne saisis pas trop.

Voici la structure de mes tables

table1
`societe` varchar(255) NOT NULL default '',
`personne` varchar(255) NOT NULL default '',
`tel` varchar(255) NOT NULL default '',
`fax` varchar(255) NOT NULL default '',
`adresse` varchar(255) NOT NULL default '',
`cp` varchar(255) NOT NULL default '',
`ville` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`login` varchar(255) NOT NULL default '',
`mdp` varchar(255) NOT NULL default '',
`obs` varchar(255) NOT NULL default '',
`statut` varchar(255) NOT NULL default 'inactif'

table2
`rma` varchar(255) NOT NULL default '',
`fournisseur` varchar(255) NOT NULL default '',
`marque` varchar(255) NOT NULL default '',
`ref` varchar(255) NOT NULL default '',
`facture` varchar(255) NOT NULL default '',
`serie` varchar(255) NOT NULL default '',
`typepanne` varchar(255) NOT NULL default '',
`statut` varchar(255) NOT NULL default 'Non recu',
`login` varchar(255) NOT NULL default '',


Les champs que je cherche à ajouter automatiquement sont fournisseur2, marque2, ref2, serie2, typepanne2 et ainsi de suite fournisseur3...

Comment faire pour connaître les champs qui ont été ajoutés par l'utilisateur et les ajouter à ma table?

merci encore pour votre aide
 
WRInaute passionné
je vais attirer ton attention sur certains points choquants concernant ta demande puisque personne le l'a encore fait

une base de donnée contient des tables dans lesquelles on va insérer des données et d'où l'on va tirer des extraits

il n'a jamais été question de pouvoir les altérer en cour de route

un lock table qui foire et t'as plus de table
l'optimisation de secu tend à diminuer au maximum les privileges du mysql user qui va effectuer les requêtes, hors dans ton shema le user est a pratiquement plein pouvoir sur les tables
je pense que la relation entre tes tables est mal conçue et à ta place je refléchirai à une methode différente style merise

rog
 
WRInaute accro
webac a dit:
Mon problème se pose lors de la récupération des données je souhaite insérer les données dans ma table et créer automatiquement les champs inexistants de la table.

= marque d'un problème de conception ...

repense ton modèle tu ne devrais jamais te trouver dans un tel scénario, c'est contraire a la philosophie d'un SGBD.
 
Discussions similaires
Haut