Bonjour à tous,

Je suis en train de plancher un truc mais je sèche totalement et j'espère avoir des yeux neuf pour m'aider.

En gros je souhaite créer un système de base de données clients où les colonnes pourront être réoganisées, le titre de ces colonnes modifées, que l'on puisse ajouter et supprimer des colonnes.

Le problème c'est que cette gestion des clients va être différentes en fonction des personnes qui vont l'utiliser :
L'utilisateur A va vouloir afficher Nom | Prenom | Entreprise
L'utilisateur B va vouloir afficher Prenom | Nom | Entreprise
L'utilisateur C va vouloir afficher Nom Prénom | Entreprise
Et ainsi de suite ...

Comme les colonnes étant définis par l'utilisateur lui même je ne peux pas créer dans ma BDD SQL une colonne que je vais appeler nom_client. Vous me comprennez ?

Donc comment je peux faire pour créer un système comme ceci ?

Je ne demande pas qu'on me fasse le code je serai cable de le faire, mais juste la métodologie car je suis dessus depuis ce midi et je ne sais pas comment m'y prendre

Merci d'avance et bonne soirée

9 réponses


Woozim
Réponse acceptée

Si chacun crée son champs ca risque de Poser rapidement soucis mais tu peux le faire avec une requette sql Dans ton code php genre:

ALTER TABLE table_name
ADD column_name datatype
TransientDev
Réponse acceptée

Bonjour,
je ne suis pas sur d'avoir compris ta question mais je pense que mysql_list_fields() de de php peut t'aider.
voici le lien de la doccumentation: http://php.net/manual/fr/function.mysql-list-fields.php

EDIT: My bad ce n'est plus d'actualité ^_^ tu peux aussi utiliser SHOW COLUMS de mysql qui s'utilise de la maniere suivante:
SHOW COLUMS FROM|IN nom_table ;
Et cela te renverra un tableau de tes champs et de leurs specificitées.

Cordialement
litium

BaBeuloula
Auteur
Réponse acceptée

Ah mais c'est parfait du coup maintenant je visualise bien mon procédé.

L'utilisateur A va avoir la table clients_A, il pourra rajouter, modifier, supprimer les champs qu'il veut grâce au ALTER TABLE table_name ADD column_name datatype et grâce au SHOW COLUMS FROM clients_A je récupère tous mes champs et je les parcours après un foreach.

Et bien merci à vous, je vais donc créer une petite classe PHP demain afin de mettre tous ça en pratique.

Bonne soirée à vous

BaBeuloula
Auteur
Réponse acceptée

Juste pour ceux que ça intérèsse j'ai créé un autre topic avec la classe PHP que je viens de créer grâce à votre aide : http://www.grafikart.fr/forum/topics/15250

Si c'est a l'affichage, ca n'a rien a voir avec ta Base de données ? !

J'ai certes de l'affichage mais j'ai aussi du stockage car les utilisateurs pourront ajouter, supprimer, modifier les clients

Je ne comprends pas vraiment ton soucis puisque tu as tjs les meme champs mais organisé différemment...

Alors oui J'ai donné comme exemple toujours le meme champs mais les utilisateurs vont pouvoir ajouter et supprimer des colonnes et du coup entre le A le B et le C ils ne vont pas avoir les memes et du coup comment stocker tout ca ?

Et après dans mon select comment je fais pour connaitre les champs de ma table ?