mirror of
https://github.com/Floriansylvain/projet_programmation_web.git
synced 2026-08-19 11:43:16 +02:00
✨ Added back for establishments chart
This commit is contained in:
Generated
+1
@@ -7,5 +7,6 @@
|
|||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="highcharts.src" level="application" />
|
<orderEntry type="library" name="highcharts.src" level="application" />
|
||||||
|
<orderEntry type="library" name="variable-pie" level="application" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
require_once("class/dump.php");
|
require_once("class/dump.php");
|
||||||
|
|
||||||
if (!isset($_GET['q']) || !isset($_GET['search']) || !isset($_GET['option']) || !isset($_GET['offset'])) {
|
if (!isset($_GET['q']) || !isset($_GET['search']) || !isset($_GET['option']) || !isset($_GET['offset']) ||
|
||||||
|
($_GET['option'] == 'establishment' && $_GET['q'] == 'establishment')) {
|
||||||
print_r(json_encode(array("status" => 400, "message" => "Missing query type or attributes.")));
|
print_r(json_encode(array("status" => 400, "message" => "Missing query type or attributes.")));
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
@@ -26,6 +27,7 @@ $json_object = match ($q) {
|
|||||||
"count" => dump::getThesesCount($search, $option),
|
"count" => dump::getThesesCount($search, $option),
|
||||||
"years" => dump::getThesesYears($search, $option),
|
"years" => dump::getThesesYears($search, $option),
|
||||||
"disciplines" => dump::getThesesDisciplines($search, $option),
|
"disciplines" => dump::getThesesDisciplines($search, $option),
|
||||||
|
"establishment" => dump::getThesesEstablishments($search, $option),
|
||||||
default => NULL,
|
default => NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class dump {
|
|||||||
while ($obj = $stmt->fetchObject()) {
|
while ($obj = $stmt->fetchObject()) {
|
||||||
$theses_array[$i] = array();
|
$theses_array[$i] = array();
|
||||||
foreach ($obj as $elem) {
|
foreach ($obj as $elem) {
|
||||||
|
// TODO Mettre le nom du champ à la place du vide
|
||||||
$theses_array[$i][] = empty($elem) ? "Non définit" : $elem;
|
$theses_array[$i][] = empty($elem) ? "Non définit" : $elem;
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
@@ -135,7 +136,7 @@ class dump {
|
|||||||
'auto' => $pdo->prepare("
|
'auto' => $pdo->prepare("
|
||||||
SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
SELECT DATE_FORMAT(date_soutenance, '%Y') AS Date,
|
||||||
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number
|
COUNT(DATE_FORMAT(date_soutenance, '%Y')) AS Number
|
||||||
FROM `theses`
|
FROM theses
|
||||||
WHERE author LIKE :search
|
WHERE author LIKE :search
|
||||||
OR title LIKE :search
|
OR title LIKE :search
|
||||||
OR these_director LIKE :search
|
OR these_director LIKE :search
|
||||||
@@ -143,10 +144,10 @@ class dump {
|
|||||||
GROUP BY Date
|
GROUP BY Date
|
||||||
ORDER BY Date;
|
ORDER BY 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("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;"),
|
||||||
'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;"),
|
'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;"),
|
||||||
'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;"),
|
'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;"),
|
||||||
'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;"),
|
'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;"),
|
||||||
default => "",
|
default => "",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -175,7 +176,7 @@ class dump {
|
|||||||
'auto' => $pdo->prepare("
|
'auto' => $pdo->prepare("
|
||||||
SELECT discipline AS Discipline,
|
SELECT discipline AS Discipline,
|
||||||
COUNT(discipline) AS Number
|
COUNT(discipline) AS Number
|
||||||
FROM `theses`
|
FROM theses
|
||||||
WHERE author LIKE :search
|
WHERE author LIKE :search
|
||||||
OR title LIKE :search
|
OR title LIKE :search
|
||||||
OR these_director LIKE :search
|
OR these_director LIKE :search
|
||||||
@@ -184,10 +185,10 @@ class dump {
|
|||||||
ORDER BY `Number` DESC
|
ORDER BY `Number` DESC
|
||||||
LIMIT 10
|
LIMIT 10
|
||||||
"),
|
"),
|
||||||
'author' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM `theses` WHERE author LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
'author' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM theses WHERE author LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
'title' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM `theses` WHERE title LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
'title' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM theses WHERE title LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
'director' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM `theses` WHERE these_director LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
'director' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM theses WHERE these_director LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
'establishment' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM `theses` WHERE soutenance_establishment LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
'establishment' => $pdo->prepare("SELECT discipline AS Discipline, COUNT(discipline) AS Number FROM theses WHERE soutenance_establishment LIKE :search GROUP BY Discipline ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
default => "",
|
default => "",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -204,6 +205,45 @@ class dump {
|
|||||||
return $disciplines_array;
|
return $disciplines_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getThesesEstablishments(string $search, string $option) : array {
|
||||||
|
$establishments_array = [];
|
||||||
|
|
||||||
|
$pdo_obj = new conf();
|
||||||
|
$pdo = $pdo_obj->getPDO();
|
||||||
|
|
||||||
|
$search = '%' . $search . '%';
|
||||||
|
|
||||||
|
$stmt = match ($option) {
|
||||||
|
'auto' => $pdo->prepare("
|
||||||
|
SELECT soutenance_establishment AS Establishment,
|
||||||
|
COUNT(soutenance_establishment) AS Number
|
||||||
|
FROM theses
|
||||||
|
WHERE author LIKE :search
|
||||||
|
OR title LIKE :search
|
||||||
|
OR these_director LIKE :search
|
||||||
|
GROUP BY Establishment
|
||||||
|
ORDER BY `Number` DESC
|
||||||
|
LIMIT 10;
|
||||||
|
"),
|
||||||
|
'author' => $pdo->prepare("SELECT soutenance_establishment AS Establishment, COUNT(soutenance_establishment) AS Number FROM theses WHERE author LIKE :search GROUP BY Establishment ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
|
'title' => $pdo->prepare("SELECT soutenance_establishment AS Establishment, COUNT(soutenance_establishment) AS Number FROM theses WHERE title LIKE :search GROUP BY Establishment ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
|
'director' => $pdo->prepare("SELECT soutenance_establishment AS Establishment, COUNT(soutenance_establishment) AS Number FROM theses WHERE theses.these_director LIKE :search GROUP BY Establishment ORDER BY `Number` DESC LIMIT 10;"),
|
||||||
|
default => "",
|
||||||
|
};
|
||||||
|
|
||||||
|
$stmt->bindParam(':search', $search, PDO::PARAM_STR, 100);
|
||||||
|
$stmt->execute();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
while ($obj = $stmt->fetchObject()) {
|
||||||
|
$establishments_array[$i] = array();
|
||||||
|
$establishments_array[$i][$obj->Establishment] = $obj->Number;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $establishments_array;
|
||||||
|
}
|
||||||
|
|
||||||
public function sendThese($pdo) {
|
public function sendThese($pdo) {
|
||||||
$data = [
|
$data = [
|
||||||
'author' => $this->these->getAuthor(),
|
'author' => $this->these->getAuthor(),
|
||||||
|
|||||||
Reference in New Issue
Block a user