mirror of
https://github.com/Floriansylvain/projet_programmation_web.git
synced 2026-08-19 11:43:16 +02:00
✨ Years chart now gives online/offline count
This commit is contained in:
@@ -10,7 +10,7 @@ if (!isset($_GET['q']) || !isset($_GET['search']) || !isset($_GET['option']) ||
|
|||||||
|
|
||||||
$q = $_GET['q'];
|
$q = $_GET['q'];
|
||||||
$search = filter_var($_GET['search'], FILTER_SANITIZE_ADD_SLASHES);
|
$search = filter_var($_GET['search'], FILTER_SANITIZE_ADD_SLASHES);
|
||||||
$option = $_GET['option'];
|
$option = $_GET['option']; // TODO Ajouter l'option Discipline
|
||||||
$offset = $_GET['offset'];
|
$offset = $_GET['offset'];
|
||||||
|
|
||||||
if (strlen($search) < 3) {
|
if (strlen($search) < 3) {
|
||||||
|
|||||||
@@ -134,20 +134,64 @@ class dump {
|
|||||||
|
|
||||||
$stmt = match ($option) {
|
$stmt = match ($option) {
|
||||||
'auto' => $pdo->prepare("
|
'auto' => $pdo->prepare("
|
||||||
SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
SELECT Date, theses_online, theses_offline
|
||||||
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number
|
FROM (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
FROM theses
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_online
|
||||||
WHERE author LIKE :search
|
FROM theses
|
||||||
OR title LIKE :search
|
WHERE `online` LIKE 'yes'
|
||||||
OR these_director LIKE :search
|
AND (author LIKE :search
|
||||||
OR soutenance_establishment LIKE :search
|
OR title LIKE :search
|
||||||
GROUP BY Date
|
OR these_director LIKE :search
|
||||||
ORDER BY Date;
|
OR soutenance_establishment LIKE :search)
|
||||||
|
GROUP BY Date) t_online
|
||||||
|
NATURAL JOIN (
|
||||||
|
SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_offline
|
||||||
|
FROM theses
|
||||||
|
WHERE `online` LIKE 'no'
|
||||||
|
AND (author LIKE :search
|
||||||
|
OR title LIKE :search
|
||||||
|
OR these_director LIKE :search
|
||||||
|
OR soutenance_establishment LIKE :search)
|
||||||
|
GROUP BY Date) t_offline
|
||||||
|
ORDER BY `t_online`.`Date`;
|
||||||
"),
|
"),
|
||||||
'author' => $pdo->prepare("SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date, COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number FROM theses WHERE author LIKE :search GROUP BY Date ORDER BY Date;"),
|
'author' => $pdo->prepare("
|
||||||
'title' => $pdo->prepare("SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date, COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number FROM theses WHERE title LIKE :search GROUP BY Date ORDER BY Date;"),
|
SELECT Date, theses_online, theses_offline
|
||||||
'director' => $pdo->prepare("SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date, COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number FROM theses WHERE these_director LIKE :search GROUP BY Date ORDER BY Date;"),
|
FROM (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
'establishment' => $pdo->prepare("SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date, COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number FROM theses WHERE soutenance_establishment LIKE :search GROUP BY Date ORDER BY Date;"),
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_online
|
||||||
|
FROM theses WHERE `online` LIKE 'yes' AND author LIKE :search GROUP BY Date) t_online
|
||||||
|
NATURAL JOIN (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_offline
|
||||||
|
FROM theses WHERE `online` LIKE 'no' AND author LIKE :search GROUP BY Date) t_offline
|
||||||
|
ORDER BY `t_online`.`Date`;"),
|
||||||
|
'title' => $pdo->prepare("
|
||||||
|
SELECT Date, theses_online, theses_offline
|
||||||
|
FROM (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_online
|
||||||
|
FROM theses WHERE `online` LIKE 'yes' AND title LIKE :search GROUP BY Date) t_online
|
||||||
|
NATURAL JOIN (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_offline
|
||||||
|
FROM theses WHERE `online` LIKE 'no' AND title LIKE :search GROUP BY Date) t_offline
|
||||||
|
ORDER BY `t_online`.`Date`;"),
|
||||||
|
'director' => $pdo->prepare("
|
||||||
|
SELECT Date, theses_online, theses_offline
|
||||||
|
FROM (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_online
|
||||||
|
FROM theses WHERE `online` LIKE 'yes' AND these_director LIKE :search GROUP BY Date) t_online
|
||||||
|
NATURAL JOIN (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_offline
|
||||||
|
FROM theses WHERE `online` LIKE 'no' AND these_director LIKE :search GROUP BY Date) t_offline
|
||||||
|
ORDER BY `t_online`.`Date`;"),
|
||||||
|
'establishment' => $pdo->prepare("
|
||||||
|
SELECT Date, theses_online, theses_offline
|
||||||
|
FROM (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_online
|
||||||
|
FROM theses WHERE `online` LIKE 'yes' AND soutenance_establishment LIKE :search GROUP BY Date) t_online
|
||||||
|
NATURAL JOIN (SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS theses_offline
|
||||||
|
FROM theses WHERE `online` LIKE 'no' AND soutenance_establishment LIKE :search GROUP BY Date) t_offline
|
||||||
|
ORDER BY `t_online`.`Date`;"),
|
||||||
default => "",
|
default => "",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -156,8 +200,12 @@ class dump {
|
|||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($obj = $stmt->fetchObject()) {
|
while ($obj = $stmt->fetchObject()) {
|
||||||
$years_array[$i] = array();
|
$years_array[$i] = array(
|
||||||
$years_array[$i][$obj->Date] = $obj->Number;
|
$obj->Date => array(
|
||||||
|
"online" => $obj->theses_online,
|
||||||
|
"offline" => $obj->theses_offline
|
||||||
|
)
|
||||||
|
);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,8 +245,9 @@ class dump {
|
|||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($obj = $stmt->fetchObject()) {
|
while ($obj = $stmt->fetchObject()) {
|
||||||
$disciplines_array[$i] = array();
|
$disciplines_array[$i] = array(
|
||||||
$disciplines_array[$i][$obj->Discipline] = $obj->Number;
|
$obj->Discipline => $obj->Number
|
||||||
|
);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,8 +285,9 @@ class dump {
|
|||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($obj = $stmt->fetchObject()) {
|
while ($obj = $stmt->fetchObject()) {
|
||||||
$establishments_array[$i] = array();
|
$establishments_array[$i] = array(
|
||||||
$establishments_array[$i][$obj->Establishment] = $obj->Number;
|
$obj->Establishment => $obj->Number
|
||||||
|
);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user