Page principale Mlam |
Les options sont : taille de la fenêtre de saisie et limitation du nombre de caractères. (1) : apparence par défaut (2) : taille limitée à 3 caractères (3) : limitation du nombre de caractères à 3 Ces options sont combinables. Les routines de vérification marchent, avec quelques exceptions pour les très grands nombres réels (à exponentielle). Les routines de vérification prennent en compte les définitions mysql comme int(11). |
Diverses façons de présenter ce type. |
Si la donnée est bien un nombre, elle est gérée comme le type integer (ou équivalent), autrement dit
les options (1), (2) et (3). Cette donnée peut aussi être utilisée comme une clé externe (sa valeur est la même que la valeur d'une clé externe dans une table). Pour être clair, prenons l'exemple de 2 tables (table_a et table_b), et plus précisément une colonne dans table_a (col_a). Chaque valeur de col_a représente des données dans table_b (toutes les données dont la clé primaire a la même valeur que dans col_a). Mlam propose plusieurs façons de traiter ce cas, qui peut être traité de beaucoup de manières différentes. |
Toutes les façons de gérer ce type. |
(4) : liste des données disponibles Avec cette option on affiche une vue de toutes les éléments présents dans table_b. Mlam permet de choisir la colonne affichée dans la liste (une des colonnes de table_b), et permet de sélectionner une colonne pour faire un tri des données. Ca peut être la même colonne (affichage d'une colonne col de table_b ordonnée), mais ça peut en être une autre (affichage d'une colonne col de table_b triée par colonne date). (5) : Insertion directe d'un nouveau lien En option, mlam peut laisser l'utilisateur créer une nouvelle donnée. Quand le formulaire sera soumis, une nouvelle donnée sera créée dans table_b, laquelle sera directement liée à l'enregistrement courant dans table_a. On ne peut pas indiquer plus d'une valeur avec cette option. Note : Cette option devient lourde à l'affichage quand il y a trop de données à afficher. |
(4) option : nouvelle valeur (5) |
(6) : liste hiérarchique des données disponibles Le principe est en gros le même que pour (4), mais les données sont affichées suivant un héritage père-fils. Cela signifie dans notre exemple que table_b contient une colonne spécifique (nommée par exemple col_père) qui représente le "père" de la valeur courante (quand il y a une valeur). Si cette colonne ne contient rien, elle est considérée comme un père. Tous les fils sont présentées en dessous de leur père (avec un signe '+' devant leur valeur). Pour utiliser cette option, il suffit d'indiquer à mlam quelle est la colonne à considérer comme col_père. | (6) |
(7) : outil de recherche Quand le nombre de valeurs dans table_b devient trop grand pour tous les afficher, le seul moyen de permettre la liaison avec une des valeurs est de la rechercher. Mlam contient donc un outil de recherche. Cette recherche peut s'effecteur sur autant de colonnes que disponibles dans table_b. C'est dans l'outil d'administration qu'on définit les champs de recherche (et leurs intitulés). Si l'utilisateur indique plusieurs données, le moteur recherche des résultats réunissant toutes les conditions. Suivant le type des colonnes, mlam adapte automatiquement la façon de faire des recherches (voir ci-contre la différence entre une recherche dans un champ de type entier et des champs de type texte). La page de résultats aussi configurable. On peut y indiquer autant de colonnes que de valeurs disponibles. Mlam intègre aussi une limitation du nombre de résultats retournés. Quand cette limite est atteinte, mlam propose une interface classique de déplacement dans les résultats (voir les résultats suivant ou précédant). Chaque résultat est sélectionnable pour être relié à l'enregistrement courant dans table_a. Mlam a encore une possibilité : créer un nouvel enregistrement dans table_b, et lier automatiquement cette nouvelle valeur à l'enregistrement courant dans table_a. Ca se fait en indiquant simplement la structure à utiliser pour éditer les enregistrements dans table_b. On peut ainsi créer un nouvel enregistrement complet. Ainsi, avec une seule page php (avec 3 lignes spécifiques), vous avez la possibilité d'éditer un enregistrement dans une table, chercher des données dans une autre table pour lier la valeur, mais aussi éventuellement créer un nouvel enregistrement dans cette autre table pour enfin lier le résultat à l'enregistrement initial !! |
rechercher dans champ 1 : rechercher chiffres : > < rechercher dans champ 2 : (7) |
(8) : bouton type radio Ce style de présentation est difficilement utilisable avec beaucoup de valeurs dans table_b. Tous les éléments de cette table sont présentés ici avec les même possibilités de choix de colonne et de tri que pour (4). (9) : liste complète Encore une fois, il vaut mieux utiliser cette option avec peu d'enregistrements dans table_b. Les options sont les mêmes que pour (8), mais mlam doit connaître ici le nombre d'éléments à montrer (en html, c'est la même chose que (4) mais avec une fixation du nombre de sélections possibles). |
option 1 option 2(8) option 3 (9) |
(10) : sélection par image Cette méthode est pratique quand les données stockées dans table_b représentent des images (en général une des colonnes contient le nom du fichier, les autres des données comme la hauteur et la largeur...). Pour faciliter le choix de l'image désirée, mlam propose ce menu déroulant. Toutes les images sont listées avec les mêmes options de choix de colonne et de tri que (4). Quand l'utilisateur choisit une valeur dans le menu déroulant, le chargement de l'image correspondante se lance automatiquement pour affichage en dessous du menu (fonction javascript). Il est du coup très facile de vérifier que c'est bien la bonne image voulue. |
visualisation de l'image choisie(10) |
Ce type de données correspond à des chaînes d'au moins 256 caractères. Mlam les manipule quasiment comme
(1). La différence vient de la définition de la taille de la saisie qui se fait en nombre de colonnes
et en nombre de lignes. Pour les utilisateurs qui utilisent internet explorer 5 et plus, mlam offre la possibilité d'utiliser un mode spécifique qui permet d'éditer le contenu en html sans passer par l'écriture des balises. Vous pouvez voir un exemple (poussé) de ce que propose internet explorer sur le site de microsoft : microsoft msdn. Les fonctionnalités implémentées dans mlam sont : gras, italic, souligné, lien http. De plus, en indiquant un répertoire et son url correspondante, mlam propose une possibilité d'intégration d'images dans le texte directement à la souris (drag and drop). |
Nous considérons ici des liaisons entre tables un peu dans le même style que (4) (une colonne dans une table
correspond à des données dans une autre table), sauf qu'on veut pouvoir lier plusieurs tables à une autre
sans avoir à créer des colonnes à chaque fois dans la première table. Je vais essayer d'être plus clair
avec un exemple "concret". On considère une table nommée projet et une autre table nommée
développeur. Chacune de ces tables contient ces propres champs. Un projet a un nom, une date de
début, une durée prévue, un numéro de version... Un développeur a un nom, un prénom, et d'autres propriétés.
Une table de liaison multiple a pour but de permettre de gérer les liaisons entre les projets et les
développeurs qui travaillent dessus. Il ne peut pas y avoir de limitation sur le nombre de développeurs qui
travaillent sur un projet. On ne peut donc pas prévoir des colonnes dans la table projet pour stocker les
développeurs. On passe donc par la création d'une table spécifique (nommée par exemple
lien_projet_développeur). Pour que mlam puisse reconnaître et utiliser cette table, les conditions
suivantes doivent être présentes : - la table de liaison (ici lien_projet_développeur) doit avoir une clé primaire (avec l'option auto increment) - la table de liaison (ici lien_projet_développeur) doit posséder deux colonnes utilisables comme clé externe (donc du type bigint). Le résultat de l'utilisation de cette table est visible en (11). Les éléments que doit connaître mlam sont: 1: le nom de la table de liaison (ici lien_projet_développeur) et le nom de sa clé primaire 2: le nom de la table liée (ici développeur) et le nom de sa représentation dans la table de liaison 3: la colonne (de la table liée) dont on veut montrer le contenu à l'écran (cf (11)). Les éléments de cette colonne sont ordonnés. Tous ces réglages sont grandement facilités par l'outil d'administration. Mlam montre dans un menu déroulant la liste des liaisons possibles (sans les liaisons éventuellement effectives). Ensuite vient la liste des liaisons déjà enregistrées, avec la possibilité de les supprimer (les liaisons uniquement). Il suffit donc de sélectionner un élément dans la liste déroulante et de valider la page pour l'ajouter, et de cocher une ou plusieurs liaisons pour les supprimer (ce qui peut se faire en même temps que l'ajout). De plus, si la table de liaison contient un champ entier, celui-ci peut être utilisé pour organiser l'ordre dans lequel les données sont reliées (comme sur l'exemple ci-contre). Dans l'outil d'administration, il suffit d'indiquer quel est le champ à utiliser pour rendre cette possibilité fonctionnelle. En option : les images Si la table liée contient un champ image (par exemple les photos des développeurs), elles peuvent être affichées à la place des noms. Mlam a besoin alors de connaître le répertoire contenant les images ainsi que l'url correspondante. Encore une fois, ces réglages sont simplifiés avec l'utilisation de l'outil d'administration. | |
Vous avez aussi la possibilité d'utiliser un moteur de recherche pour trouver les données à relier (cf 12). Il marche de la même manière que celui proposé pour les "simples" clés étrangères, avec les mêmes fonctionnalités. Sauf qu'ici, on a en plus la gestion des enregistrements dans la table de liaison. |