EXPORT VERS EXCEL D`UNE ACTIVITE BASE DE DONNEES MOODLE
Transcription
EXPORT VERS EXCEL D`UNE ACTIVITE BASE DE DONNEES MOODLE
EXPORT VERS EXCEL D’UNE ACTIVITE BASE DE DONNEES MOODLE Par exemple, création dans un cours Moodle d’une activité base de données qui contient les informations suivantes (formulaire à remplir par chaque élève): NOM, PRENOM ADRESSE N° Téléphone Nous voulons ensuite exporter la liste des renseignements vers Excel pour traitements appropriés. Les tables impactées dans la base de données MySQL: MDL_DATA : avec les attributs Id : N° chrono automatique Course : N° du Cours dans la base MySQL Name : Le nom donné à la base de données au sein du cours MDL_DATA_FIELDS : avec les attributs Id : N° chrono Dataid : N° qui correspond à Id de la table MDL_DATA (lien) Name : Le nom du champ dans le formulaire de saisie MDL_DATA_CONTENT : avec les attributs Fieldid : N° qui correspond à Id de la table MDL_DATA_FIELDS (lien) Recordid : Le N° de la fiche en absolu (ttes BDD Moodle confondues) Content : Le contenu du champ saisi sur le formulaire Le principe consiste donc à repérer dans la table MDL_DATA le Id qui correspond à notre BDD dans notre cours (soit NumBDD). Ensuite dans la table MDL_DATA_FIELDS , pour Dataid = NumBDD nous obtiendrons une série d’Id qui correspondent aux différents champs définis dans notre BDD et avec Name le nom que nous leur avons donné. Ensuite dans la table MDL_DATA_CONTENT , pour cette série d’Id nous retrouverons leurs équivalents dans Fieldid et donc leurs différents contenus saisis par les utilisateurs (content) Mode opératoire dans Webmin: Création de 2 tables dans la base MySQL : _ une générique qui pourra resservir pour d’autres extraction : Extract_BDD _ une spécifique à une extraction d’une base données : EXTRACT_BDD_DEF afin de récupérer en en-têtes de colonnes EXCEL les intitulés des champs de notre BDD Table Extract_BDD : Intitule text Valeur text Fieldid Int Recordid Int Table Extract_BDD_Def NOM Text PRENOM Text ADRESSE Text NUM_TEL Text RECORDID INT Passer les ordres SQL dans l’ordre suivant : 1/ insert into extract_bdd select name,content,fieldid,recordid from mdl_data_content,mdl_data_fields where dataid = NUMBDD (à remplacer par la bonne valeur entière repérée ci-dessus) and mdl_data_fields.id = mdl_data_content.fieldid order by recordid (à ce stade nous avons récupéré dans EXTRACT_BDD toutes nos infos mais hélas pas dans un ordre idéal pour un export vers Excel) 2/ insert into extract_bdd_def (NOM,RECORDID) select valeur,recordid from extract_bdd where fieldid = X (le N° qui correspond au champ “intitule” de la table extract_bdd que nous voulons récupérer, par exemple le NOM) (à ce stade nous avons récupéré dans EXTRACT_BDD_DEF tous les NOMS des élèves. Il nous faut maintenant renseigner les champs PRENOM,ADRESSE et N° TEL , nous le ferons avec une série d’UPDATE SQL) 3/ update extract_bdd_def set PRENOM = (select valeur from extract_bdd where fieldid = X+1 and extract_bdd.recordid = extract_bdd_def.recordid (à ce stade nous avons récupéré dans EXTRACT_BDD_DEF tous les NOMS et PRENOM des élèves. Il nous faut maintenant renseigner les champs ADRESSE et N° TEL ) 4/ update extract_bdd_def set ADRESSE = (select valeur from extract_bdd where fieldid = X+2 and extract_bdd.recordid = extract_bdd_def.recordid (à ce stade nous avons récupéré dans EXTRACT_BDD_DEF tous les NOMS , PRENOM et ADRESSE des élèves. Il nous faut maintenant renseigner le champ N° TEL ) 5/ update extract_bdd_def set ADRESSE = (select valeur from extract_bdd where fieldid = X+3 and extract_bdd.recordid = extract_bdd_def.recordid (à ce stade nous avons récupéré dans EXTRACT_BDD_DEF tous les NOMS , PRENOM et ADRESSE et N° TEL des élèves.) Extraire de Webmin en format csv la table EXTRACT_BDD_DEF avec l’utilitaire disponible sur la page de visualisation du contenu de cette table (le champ Recordid peut être désélectionné)