Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 2009
-
29 déc. 2007 à 16:51
jspimen
Messages postés40Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention24 novembre 2010
-
24 avril 2008 à 10:38
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
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 29 déc. 2007 à 17:16
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.
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 2 janv. 2008 à 10:43
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.
jspimen
Messages postés40Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention24 novembre 2010 24 avril 2008 à 10:38
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.