Récupérer informations de champ d'une table mysql

Signaler
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
-
Messages postés
40
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
24 novembre 2010
-
Salut à tous,

n'ayant pas trouvé de question similaire, je vous soumets mon problème :

je cherche à faire un script gérant des tables de manière entièrement dynamique.
je ne connais donc aucune information préalable sur la table qui va être choisie par l'utilisateur dans une liste. Cette liste étant dynamique et pouvant être importante, je ne souhaite pas gérer chaque table de manière spécifique mais bien de manière automatique.

pour l'instant j'ai réussi à afficher la table, avec les noms des champs.
je génère également un formulaire d'ajout dynamique, avec des input différents selon les types des champs.

cependant il est possible qu'un champ possède l'attribut auto_increment. dans ce cas, il ne doit pas être choisi par l'utilisateur. je voudrais donc filtrer les champs possédant cette propriété lors de ma boucle de parcours des champs (for $i=0; $i<$nbchamps; $i++)
avec un if () et dans le cas où c'est auto_increment, je saute la procédure de génération de balise input.

de la même manière, une table peut être liée à une autre avec une clef étrangère. dans ce cas, il n'est pas utile de proposer la saisie d'un ID de la forme 1013578 mais plutôt d'afficher une liste des entrées de la table associée, permettant à l'utilisateur de faire un choix sans erreur possible.

je ne parviens pas à trouver les fonctions me permettant de retrouver ses informations.
si quelqu'un veut bien m'aider pleeeeaaase

merci beaucoup et bonne fin de fêtes.

Loki

7 réponses

Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
bon en fait je viens de trouver la solution pour le premier problème

je fais un mysql_field_flags(). et ensuite un test de présence de la chaine auto_increment avec strpos().

grâce à ça je peux vérifier la présence de clef étrangère (multiple_key). mais ça ne m'indique pas quelle est la table associée. je me demande d'ailleurs si on peut obtenir ce renseignement.

Merci de vos réponses futures.

Loki
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
si tu a trouvé la réponse a ton problème met la réponse en réponse accepté !!!

A++

 
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

regarde du côté des SHOW ... sous mysql. Ou DESCRIBE ...
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
j'ai trouvé une réponse sur les deux. si je mets réponse acceptée, plus personne viendra m'aider ^^

je vais regarder encore, même si j'ai déjà abordé les show et describe vite fait. merci pour la suggestion.

Loki
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
n'ayant rien trouvé, j'ai triché

j'ai créé une table où je recense les clefs étrangères entre mes autres tables. c'est dégueulasse comme travail mais bon. du coup à chaque fois que je détecte un attribut multiple_key dans un champ, je vais voir dans cette table ce qu'il est dit et je traite en fonction.

je laisse le sujet en suspens au cas où quelqu'un aurait l'idée du siècle.

Loki
Messages postés
40
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
24 novembre 2010

imy
Messages postés
40
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
24 novembre 2010

j'ai crée une base de donnée mysql et access et j'aime faire une teste sur les sur les champs des tables de cette base pour faire la correspondance entre les champs avec une code jsp
si quelqu'un veut bien m'aider slv.