Page 1 sur 1

génération dynamique des champs d'un formulaire

Posté : 12 mai 2011, 11:00
par olivierg
Bonjour,

Je me pose une petite question aujourd'hui et j'aimerais savoir si ce que je désire faire est faisable "plus simplement" qu'avec la méthode à laquelle je pense.
Peut-être que certains d'entre vous travaillent dans de grosses structures ou savent comment cela fonctionne dans de gros systèmes.

Voici mon cas très simplifié :

j'ai une table (provenant d'une grosse base relationelle) avec une 30aine de champs.
je dois rajouter régulièrement plusieurs champs dans cette table (ainsi que dans d'autres tables).

actuellement, j'ai du code PHP très simple avec un formulaire d'administration pour les valeurs de ces champs (lister/modifier/supprimer les valeurs de cette table).

je dois, à chaque fois que l'on rajoute un champ dans la table, modifier mon code source de mon formulaire/tableau afin de prendre ce nouveau champ en compte, et c'est assez barbant.

ma question est donc la suivante :

y-a-t'il un moyen reconnu / simple / utilisé par beaucoup, permettant de faire cela dynamiquement ?
ou dois-je moi-même développer un système afin que ma page PHP prenne les infos dans la base MySQL et rajoute ces lignes de code (formulaire/tableau) dynamiquement ?

car c'est casse-bonbon de devoir modifier 10 pages PHP à chaque fois que je rajoute un champ "quelconque" (sans trop de relations, voir aucune) dans cette table.

merci par avance

Re: génération dynamique des champs d'un formulaire

Posté : 12 mai 2011, 13:48
par macgawel
Bonjour,

j'ai une table (provenant d'une grosse base relationelle) avec une 30aine de champs.
je dois rajouter régulièrement plusieurs champs dans cette table (ainsi que dans d'autres tables).
Bonjour.

Revois ton schéma de base :mrgreen:
Parce que si tu as besoin de rajouter régulièrement des champs à des tables qui en comptent déjà 30, il y a fort à parier que le problème vient de là...

Sinon, tu as la fonction mysql_list_fields. Tu y liras :
La fonction mysql_list_fields() est obsolète. Il est préférable d'utiliser la fonction mysql_query() avec comme requête SHOW COLUMNS FROM table [LIKE 'name'] à la place.
Il te reste ensuite à boucler sur le résultat de ta requête et à créer un champ de formulaire pour chaque champ de ta table.
Tu peux coupler avec mysql_field_type() qui te donne le type de champ. Ca te permettra de fournir un champ de formulaire adéquat...

Sinon, une recherche sur le net devrait te fournir des scripts/classes qui feront e travail pour toi :wink:

Re: génération dynamique des champs d'un formulaire

Posté : 13 mai 2011, 11:50
par olivierg
merci pour les infos (mon schéma est plutôt bon, je n'ai pas de soucis de ce côté, j'ai bcp de relations d'ailleurs, ça deviens un peu le bordel le mcd est de plus en plus grand).

je vais regarder ces fonctions de plus prêt :) je ne connaissait pas thanks !