Mlam : page principale

SourceForge Logo

Clés externes

Retour

Préparation du travail
Avant de pouvoir attaquer nos clés externes, nous devons créer une structure pour enregistrer les différentes zones existant pour les dvd. Le procédé est exactement le même que celui suivi lors de la création de notre première structure. Le résultat final est le suivant :

Table courante : zone, Clé principale : zone_id   Configurer l'affichage de la liste de ces données
Vous pouvez changer le nom de la structure courante Vous pouvez indiquer le nombre de colonnes
Vous pouvez indiquer le nombre de colonnes
Nom du champInformationsEdition ?Que visu ?OrdreActionOption(s)
zone
Quel titre ?
 Insertion ?
Mise à jour ?
Largeur (en nombre de caractères)
Voulez-vous utiliser cette valeur comme un mot de passe?
Ou ça peut représenter un fichier ou une image
zone_idClé principale, non éditable  
Un petit tour dans la configuration pour lister les données :


Nom du fichier pour éditer les données :
Nom du champAffiché ?OrdreSous quel nom ?Ordonné ?Ordre du triRecherche ?Sous quel nom ?
zone
zone_id
Il ne reste plus qu'à créer le fichier edit_zone.php (dans le même répertoire que edit_movie.php) :
<?session_start();?>
<html>
<head>
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
</head>
<body>
<a href="edit_zone.php?id=-1">Création d'une zone</a><br>
<a href="edit_zone.php">Zones en base</a><br>
<form method=post enctype="multipart/form-data" action='edit_zone.php'>
<?
require("mlam_tables_def.php");
mlam_form("edit_zone",$id);
?>
<input type=submit>
</form>
</body>
</html>
Avant de continuer vers l'étape suivante, il vaut mieux rentrer quelques données dans cette tables, sinon les tests ne seront pas très intéressants. Dans mon cas, la liste des zones en base est la suivante :
    Number of results found : 7 (0-10)    
zones dvd
Zone 1
Zone 2
Zone 3
Zone 4
Zone 5
Zone 6
Zone all

Clé externe simple (quoique)
Nous allons enfin créer une structure pour éditer nos dvds. Dans l'outil d'administration mlam, choisisser la table dvd. Celle-ci n'est pas très volumineuse (que 3 champs en comptant la clé primaire). Nous allons nommer cette structure edit_dvd, et nous allons éditer deux champs : comment et dvd_film_id. Pour ce dernier champ, nous allons cocher l'option donnée représente une clé externe, car ce champ est justement sensé représenter le film qui se trouve sur le dvd. Après avoir ajouté cette structure dans la configuration courante, un nouveau lien est disponible (même principe que lors de la gestion d'une image). Cliquez sur Créez votre configuration. Vous arrivez à l'écran suivant :
Quelle table voulez-vous relier ??

Choisissez film, c'est ce qu'on veut utiliser ici. Le nouvel écran est par contre un peu plus fourni :
Quelle table voulez-vous relier ??


film : Faites vos choix (* pour obligatoire)
Type de liaison*
Votre clé externe*
Donnée à afficher*
Colonne utilisée pour le tri des données
Colonne du père (uniquement pour la sélection hiérarchique)
Taille (que pour la sélection)
Fichier (que pour le choix d'image)*
Url du répertoire (après http://www.votresite.com)
(seulement pour le choix d'image)*
Répertoire (seulement pour le choix d'image)*
Nous n'allons pas utiliser toutes ces options (reportez vous à la documentation détaillée si vous voulez tout savoir). En fait, nous allons ici uniquement sélectionner des données obligatoires, alors allons-y :
- type de liaison : nous pourrions utiliser un simple menu déroulant, mais la liste des films disponibles peut être amené à grandir, alors nous allons utiliser un choix plus adapté à notre contexte : choix par moteur de recherche.
- votre clé externe : mlam a besoin d'être revu ici. Il n'est pas capable pour le moment de repérer la clé externe de la table que vous voulez lier (film ici), donc il le lui donner : film_id.
- Donnée à afficher : title semble le plus approprié (titre du film).
Validez vos choix. De nouvelles options apparaissent, ainsi que quelques warnings. C'est l'effet moteur de recherche :) :
film : Faites vos choix (* pour obligatoire)
Type de liaison*
Votre clé externe*
Structure pour créer un nouvel enregistrement
Options de recherches courantes
Ajouter des colonnes de recherche
Titre : Colonne :
Résultats courants
Ajouter des colonnes de résultat
Titre : Colonne :
Avec cette option, un moteur de recherche sera disponible à l'édition d'un dvd, permettant la recherche de son titre. Nous devons donc décider quels seront les champs pour la recherche, et quels seront ceux affichés dans les pages de résultat de la recherche. De plus, on a la possibilité de créer directement une nouvelle donnée à la volée si on ne trouve pas ce qu'on cherche. Il faut donc configurer tout ça :
- Structure pour créer un nouvel enregistrement : Nous allons utiliser edit_film, notre première structure pour éditer les films.
- Ajouter des colonnes de recherche : on a ici la possibilité de faire des recherches sur plusieurs colonnes, mais nous allons faire simple en ne recherchant que sur les titres. On ne sélectionne donc que la colonne title (le titre est laissé à votre convenance).
- Ajouter des colonnes de résultat : Il peut être intéressant d'afficher le titre (title) puis l'année (year). Il faut d'abord sélectionner un des deux choix, puis après validation on pourra entrer le deuxième choix. Ceci doit nous amener à l'écran suivant :
film : Faites vos choix (* pour obligatoire)
Type de liaison*
Votre clé externe*
Structure pour créer un nouvel enregistrement
Options de recherches courantes
Titre : Colonne : Effacer ?
Ajouter des colonnes de recherche
Titre : Colonne :
Résultats courants
Titre : Colonne : Effacer ?
Titre : Colonne : Effacer ?
Ajouter des colonnes de résultat
Titre : Colonne :
Bien, maintenant vous pouvez revenir à la page principale pour mettre à jour la configuration et sauver le fichier de configuration. Vous en avez fini ici.

Notre clé externe en action
Vu la taille de notre table dvd, nous n'avons pas vraiment les moyens de les lister simplement. Mlam ne sait pas lister correctement des clés externes (peut-être plus tard). On va s'en sortir en listant les dvd par leurs identifiants. Ce sera plus rapide. Configurez donc ces options d'affichage pour les données, et éditez un fichier edit_dvd.php :
<?session_start();?>
<html>
<head>
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
</head>
<body>
<a href="edit_dvd.php?id=-1">Ajout d'un dvd</a><br>
<a href="edit_dvd.php">Liste des dvd</a><br>
<form method=post enctype="multipart/form-data" action='edit_dvd.php'>
<?
require("mlam_tables_def.php");
mlam_form("edit_dvd",$id);
?>
<input type=submit>
</form>
</body>
</html>
J'espère que vous avez rentré quelques films dans votre base de données, car ça va devenir intéressant.
Ouvrez l'url edit_dvd.php, dont le contenu est vide pour le moment, et allez créer un nouveau dvd. Votre écran ressemble à ce qui suit :
Titre du film Need validation of the current data first
Commentaires
Petite note : le message en anglais dit qu'il faut une validation pour avoir d'autres options (vous avez ce message en français en configurant mlam pour écrire en français). Entrez donc un commentaire, validez, et maintenant vous avez :
Insertion successful

Titre du film Titre du film :
Année de sortie :
Chercher un titre
Commentaires
Votre moteur de recherche est disponible, alors autant l'utiliser. Dans mon cas, je n'ai que deux films dans ma base de données, donc je vais juste entrer une lettre pour les trouver tous les deux. Ca donne :
Results for n
Number of results found : 2

Selection Titre du filmAnnée de sortie
james bond1974
nausicaa1984
Click here to go to the previous page Click here to create a new choice
En français, les messages auraient donné pour les deux choix du bas :
- cocher ici pour revenir en arrière
- cocher ici pour créer un nouvel enregistrement
Si je coche la cache james bond et que je valide, je me retrouve sur l'écran suivant :
Titre du film Titre du film : james bond
Année de sortie : 1974
Chercher un titre
Commentaires
Et voila... En ayant choisi l'option de création d'un nouvel enregistrement, vous auriez été redirigé sur le même écran que pour la création d'un film. Après création de votre film, le message suivant serait apparu :
Cocher la case pour lier les données à l'écran précédent
En cochant la case et validant les données, votre nouvel enregistrement aurait bien été lié à votre dvd !

Il est temps maintenant de gérer les zones de vos dvd, ce qui va vous faire utiliser les tables de liaison multiple