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é)

Documents pareils