<?php
$version 
"0.6";    // 19/03/2004
$debugSQL true;     // suprimmez ou commentez la ligne si vous ne voulez plus voir s'afficher la requete
$CTps 0;        // 0 = les temps sont affichés, 1 = les temps sont cachés

$r_membres "SELECT id, nom, prenom FROM membres WHERE id ".$o." ORDER BY id;";
$r_list_groupe "SELECT id_groupe, name FROM list_groupe WHERE id_groupe ".$o." ORDER BY id_groupe;";
$r_list_module "SELECT module_id, module_titre FROM list_module WHERE module_id ".$o." ORDER BY module_id;";
$r_act "SELECT numero, titre FROM module WHERE id_module='".$num_mod."' ORDER by numero;";


$r[] = array(
"q" => "Qui (nom/prénom/groupe) a fait un exercice entre telle date et telle date ?",
"o" => "N° du groupe",
"r" => "SELECT DISTINCT
m.nom, m.prenom, l.name as Nom_du_groupe, g.id_groupe
FROM 
membres m, list_groupe l, groupe g, tracking t
WHERE
l.id_groupe = g.id_groupe AND m.id=g.id_membres AND m.id=t.user_id
AND t.date > "
.$d1."
AND t.date < "
.$d2."
AND g.id_groupe "
.$o."
"
);


$r[] = array(
"q" => "Qui (nom/prénom/groupe/date) est venu entre telle date et telle date ?",
"o" => "N° du groupe",
"r" => "SELECT DISTINCT
m.nom, m.prenom, l.name, FROM_UNIXTIME(s.date_cnx) as date
FROM 
membres m, list_groupe l, groupe g, stat_connexion s 
WHERE 
l.id_groupe = g.id_groupe AND m.id=g.id_membres AND m.id=s.id_membres 
AND s.date_cnx > '"
.$d1."'
AND s.date_cnx < '"
.$d2."'
AND g.id_groupe "
.$o."
"
);


$r[] = array(
"q" => "Qui (nom/prénom/groupe) est venu entre telle date et telle date ?",
"o" => "N° du groupe",
"r" => "SELECT DISTINCT
m.nom, m.prenom, l.name
FROM 
membres m, list_groupe l, groupe g, stat_connexion s
WHERE
l.id_groupe = g.id_groupe AND m.id=g.id_membres AND m.id=s.id_membres
AND s.date_cnx > "
.$d1."
AND s.date_cnx < "
.$d2."
AND g.id_groupe "
.$o."
"
);


$r[] = array(
"q" => "Quels sont les exercices (modules/chapitre) les plus faits (et les moins faits) ?",
"o" => "N° de module",
"r" => "SELECT user_id, module_id, chapitre_id, count(*) as nb
FROM 
tracking t
WHERE
t.date > "
.$d1."
AND t.date < "
.$d2."
AND t.module_id "
.$o."
GROUP BY t.user_id, t.module_id, t.chapitre_id
ORDER BY nb DESC, module_id, chapitre_id
"
);

$r[] = array(
"q" => "Quels sont les exercices (modules/chapitre) les plus faits (et les moins faits) (bis) ?",
"o" => "N° de module",
"r" => "SELECT CONCAT(m.nom, \" \", m.prenom) as \"Nom\", t.module_id, t.chapitre_id, count(*) as nb
FROM 
tracking t, membres m
WHERE
t.user_id = m.id 
AND t.date > "
.$d1."
AND t.date < "
.$d2."
AND t.module_id "
.$o."
GROUP BY t.user_id, t.module_id, t.chapitre_id
ORDER BY nb DESC, module_id, chapitre_id
"
);

$r[] = array(
"q" => "Quels sont les exercices (modules/chapitre) les plus faits (et les moins faits) (ter) ?",
"o" => "N° de module",
"r" => "SELECT DISTINCT t.module_id, t.chapitre_id, count(*) as nb
FROM 
tracking t
WHERE
t.date > "
.$d1."
AND t.date < "
.$d2."
AND t.module_id "
.$o."
GROUP BY t.module_id, t.chapitre_id
ORDER BY nb DESC, module_id, chapitre_id
"
);

$r[] = array(
"q" => "Détail de qui est venu (date/nom/prenom) entre telle date et telle date ?",
"o" => "Pas d'option",
"r" => "SELECT DISTINCT
FROM_UNIXTIME(s.date_cnx) as 'Date', m.nom, m.prenom
FROM 
membres m LEFT JOIN stat_connexion s ON m.id = s.id_membres
WHERE
s.date_cnx > "
.$d1."
AND s.date_cnx < "
.$d2."
"
);

$r[] = array(
"q" => "Qui est venu (nom/prenom) entre telle date et telle date ?",
"o" => "Pas d'option",
"r" => "SELECT DISTINCT
m.nom, m.prenom
FROM 
membres m LEFT JOIN stat_connexion s ON m.id = s.id_membres
WHERE
s.date_cnx > "
.$d1."
AND s.date_cnx < "
.$d2."
"
);

$r[] = array(
"q" => "Ganesha 1.3 - Quelle est la moyenne d'un module (classé par moyenne)?",
"o" => "N° de module",
"r" => "SELECT DISTINCT
t.module_id , l.module_titre, ROUND(AVG(t.note), 1) as moyenne, COUNT(t.note) as 'Nb d\'exercices'
FROM 
tracking t, list_module l
WHERE
date < "
.$d2."
AND date > "
.$d1."
AND t.module_id "
.$o."
AND t.module_id = l.module_id
GROUP BY t.module_id
ORDER BY moyenne DESC
"
);

$r[] = array(
"q" => "Ganesha 1.3 - Quels sont  :
(1) les moyennes
(2) les temps moyens 
(3) le nb de fois ou ils ont été faits 
des exercices d'un module"
,
"o" => "N° de module",
"r" => "SELECT DISTINCT
t.module_id, l.module_titre, t.chapitre_id, ROUND(AVG(t.note),1) as 'Score Moyen', ROUND(AVG(t.temps)) as 'Temps moyen', count(*) as nb
FROM 
tracking t, list_module l
WHERE
t.date < "
.$d2."
AND t.date > "
.$d1."
AND t.module_id "
.$o."
AND t.module_id = l.module_id
GROUP BY t.module_id, t.chapitre_id
ORDER BY 'Temps moyen' DESC
"
);

$r[] = array(
"q" => "Ganesha 2 - Quelle est la moyenne d'un module (classé par moyenne)?",
"o" => "N° de module",
"r" => "SELECT DISTINCT
module_id, AVG(score) as moyenne
FROM 
tracking
WHERE
date < "
.$d2."
AND date > "
.$d1."
AND module_id "
.$o."
GROUP BY module_id
ORDER BY moyenne DESC
"
);

$r[] = array(
"q" => "Ganesha 2 - Quels sont  :
(1) les moyennes
(2) les temps moyens 
(3) le nb de fois ou ils ont été faits 
des exercices d'un module"
,
"o" => "N° de module",
"r" => "SELECT DISTINCT
module_id, chapitre_id, AVG(score) as moy_note, AVG(time) as moy_tps, count(*) as nb
FROM 
tracking
WHERE
date < "
.$d2."
AND date > "
.$d1."
AND module_id "
.$o."
GROUP BY module_id, chapitre_id
ORDER BY moy_note DESC
"
);

$r[] = array(
"q" => "Quels est le nombre de personnes qui se sont connectés entre 2 dates ?",
"o" => "Type du membre [0=stagiaire;1=auteur;2=admin;3=tuteur;4=responsable]",
"r" => "SELECT DISTINCT
count(*)
FROM 
membres
WHERE
date_connexion < "
.$d2."
AND date_connexion > "
.$d1."
AND type "
.$o."
"
);

$r[] = array(
"q" => "Ganesha 1.3 - Quel est le résultat de chaque stagiaire ayant fait un exercice (option module) ?",
"o" => "Id du module",
"r" => "SELECT m.nom, m.prenom, t.module_id, t.chapitre_id, t.note, t.temps as 'Temps (en sec.)', ROUND(t.temps)/60 as 'Temps (en mn)', FROM_UNIXTIME(t.date)
FROM membres as m, tracking as t
WHERE
t.user_id = m.id
AND t.date < "
.$d2."
AND t.date > "
.$d1."
AND module_id "
.$o."
"
);

// PyG
$r[] = array(
"q" => "Ganesha 1.3 - Quel est le résultat de chaque stagiaire ayant fait un exercice (option module) classé par nom ?",
"o" => "Id du module",
"r" => "SELECT m.nom, m.prenom, t.module_id, t.chapitre_id, t.note, t.temps as 'Temps (en sec.)', ROUND(t.temps)/60 as 'Temps (en mn)', FROM_UNIXTIME(t.date)
FROM membres as m, tracking as t
WHERE
t.user_id = m.id
AND t.date < "
.$d2."
AND t.date > "
.$d1."
AND t.module_id "
.$o."
ORDER BY m.nom
"
);

$r[] = array(
"q" => "Ganesha 2 - Quel est le résultat de chaque stagiaire ayant fait un exercice (option module) ?",
"o" => "Id du module",
"r" => "SELECT m.nom, m.prenom, t.groupe_id, t.module_id, t.chapitre_id, t.score, t.max_score, t.time as 'Temps (en sec.)', ROUND(t.time)/60 as 'Temps (en mn)', FROM_UNIXTIME(t.date)
FROM membres as m, tracking as t
WHERE
t.user_id = m.id
AND t.date < "
.$d2."
AND t.date > "
.$d1."
AND module_id "
.$o."
"
);



// PyG
$r[] = array(
"q" => "Ganesha 2 - Quel est le résultat de chaque stagiaire ayant fait un exercice (option module) classé par nom ?",
"o" => "Id du module",
"r" => "SELECT m.nom, m.prenom, t.groupe_id, t.module_id, t.chapitre_id, t.score, t.max_score,  t.time as 'Temps (en sec.)', ROUND(t.time)/60 as 'Temps (en mn)', FROM_UNIXTIME(t.date)
FROM membres as m, tracking as t
WHERE
t.user_id = m.id
AND t.date < "
.$d2."
AND t.date > "
.$d1."
AND t.module_id "
.$o."
ORDER BY m.nom
"
);

// PyG
// NB : un stagiaire n'est considéré comme inactif qu'après une periode d'inactivité fixée dans la partie admin.
// NB : la table n'est rafraichi que lors de nouvelles connexion, il peut donc subsister des identifiants de connexion "fantômes"
$r[] = array(
"q" => "Qui est connecté a cet instant ?",
"o" => "Pas d'option",
"r" => "SELECT m.nom, m.prenom,
FROM_UNIXTIME(c.date_connexion) as \"date de connexion\", 
(UNIX_TIMESTAMP(now())- (c.date_connexion)) as \"Temps écoulé en secondes\", 
FLOOR( (UNIX_TIMESTAMP(now()) - (c.date_connexion))/60) as \"Temps écoulé en minutes\"
FROM membres as m, connexion as c
WHERE m.id = c.id_user
"
);

// PyG
$r[] = array(
"q" => "Quels sont les messages recus par un membre ?",
"o" => "ID du membre",
"r" => "SELECT c.dest as 'Recu par', CONCAT(m.nom, \" \", m.prenom) as 'Envoyé par', c.text, c.date
FROM mes_rec c, membres m
WHERE c.source = m.id 
AND c.dest "
.$o."
ORDER BY c.date
"
);

// PyG
$r[] = array(
"q" => "Quels sont les messages envoyés par un membre ?",
"o" => "ID du membre",
"r" => "SELECT c.source as 'Envoyé par', c.dest, CONCAT(m.nom, \" \", m.prenom) as 'Envoyé à', c.text, c.date
FROM mes_send c LEFT JOIN membres m ON c.dest = m.id
WHERE
c.source "
.$o."
ORDER BY c.date
"
);
?>