51 lines
1.5 KiB
PHP
51 lines
1.5 KiB
PHP
|
|
<?php
|
||
|
|
// Indiquer au client que la réponse est du JSON
|
||
|
|
header('Content-Type: application/json; charset=utf-8');
|
||
|
|
|
||
|
|
// Paramètres de connexion MySQL
|
||
|
|
$host = 'localhost';
|
||
|
|
$db = 'GF';
|
||
|
|
$user = 'root';
|
||
|
|
$pass = 'sysadm-1963';
|
||
|
|
$charset = 'utf8mb4';
|
||
|
|
|
||
|
|
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
|
||
|
|
$options = [
|
||
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||
|
|
];
|
||
|
|
|
||
|
|
try {
|
||
|
|
$pdo = new PDO($dsn, $user, $pass, $options);
|
||
|
|
|
||
|
|
// Requête UNION pour récupérer :
|
||
|
|
// - Les 40 derniers pour le CAC40
|
||
|
|
// - Les 35 derniers pour l'IBEX35
|
||
|
|
// - Les 30 derniers pour le DOWJONES
|
||
|
|
// (Triés à chaque fois par date_cours décroissante)
|
||
|
|
$sql = "
|
||
|
|
(SELECT * FROM cours_actions WHERE indice = 'CAC40' ORDER BY date_cours DESC LIMIT 40)
|
||
|
|
UNION ALL
|
||
|
|
(SELECT * FROM cours_actions WHERE indice = 'IBEX35' ORDER BY date_cours DESC LIMIT 35)
|
||
|
|
UNION ALL
|
||
|
|
(SELECT * FROM cours_actions WHERE indice = 'DOWJONES' ORDER BY date_cours DESC LIMIT 30)
|
||
|
|
";
|
||
|
|
|
||
|
|
$stmt = $pdo->query($sql);
|
||
|
|
$data = $stmt->fetchAll();
|
||
|
|
|
||
|
|
// Renvoyer les données sous format JSON propre
|
||
|
|
echo json_encode([
|
||
|
|
"status" => "success",
|
||
|
|
"count" => count($data),
|
||
|
|
"data" => $data
|
||
|
|
], JSON_PRETTY_PRINT);
|
||
|
|
} catch (\PDOException $e) {
|
||
|
|
http_response_code(500);
|
||
|
|
echo json_encode([
|
||
|
|
"status" => "error",
|
||
|
|
"message" => $e->getMessage()
|
||
|
|
]);
|
||
|
|
}
|