1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
$sql = '
/*création table global*/
DROP TABLE IF EXISTS `global`;
CREATE TABLE global ( `id` int NOT NULL, `sem` int NOT NULL, `l` int NOT NULL, `j` int NOT NULL);
/*création table temporaire semaine*/
CREATE TEMPORARY TABLE semaine ( `sem` int NOT NULL, `total_l` int NOT NULL, `total_j` int NOT NULL);
/*insersion des valeurs*/
INSERT INTO semaine SELECT WEEK(`date`,4) AS `sem` , SUM(`nbre`) AS `total_l`, 0 as `total_j`
FROM `presence` INNER JOIN `guides` ON `presence`.`id_guide` = `guides`.`id_guide` WHERE DAYOFWEEK( `date` ) = 2 AND `date` > '.$periode[1].' AND `date` < '.$periode[2].' GROUP BY `date` ORDER BY `date`;
INSERT INTO semaine SELECT WEEK(`date`,4) AS `sem` , 0 as `total_l`, SUM(`nbre`) AS `total_j`
FROM `presence` INNER JOIN `guides` ON `presence`.`id_guide` = `guides`.`id_guide` WHERE DAYOFWEEK( `date` ) = 5 AND `date` > '.$periode[1].' AND `date` < '.$periode[2].' GROUP BY `date` ORDER BY `date`;
/*ajout index*/
ALTER TABLE `semaine` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
/*recopie des données*/
INSERT INTO `global` SELECT MIN(id) as id, sem, SUM(COALESCE(total_l, 0)) AS l, SUM(COALESCE(total_j, 0)) AS j FROM semaine GROUP BY sem ORDER BY id;';
$pdo->query($sql);
//extraction des données
$stmt = $pdo->query('SELECT * FROM `global`');
foreach($stmt AS $row)
{//concaténation des données
$data .= '[\''.$row['sem'].'\','.$row['l'].','.$row['j'].'],';} |
Partager