1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
$sql = <<<'SQL'
SELECT
h_lieu,
h_lat,
h_long,
h_dt2,
h_ev
FROM
historique
WHERE
h_lieu = 'BLOIS' OR h_lieu = 'chateau de blois'
ORDER BY
h_lieu,
h_lat,
h_long
SQL;
/** @var PDOStatement */
$stmt = $connexion->prepare($sql);
$stmt->execute();
$i = 0;
$keys = array(); // array([] => "h_lieu;h_lat;h_long")
$data = array(); // array(key_id => array(h_lieu, h_lat, h_long))
$evts = array(); // array(key_id => array([] => "h_dt2 h_ev"))
$titres = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$key = "{$row['h_lieu']};{$row['h_lat']};{$row['h_long']}";
// on vérifie si des données pour cette combinaison existent ou pas
$id = array_search($key, $keys, true);
if ($id === false) {
$id = $i++;
$keys[$id] = $key;
$data[$id] = array($row['h_lieu'], $row['h_lat'], $row['h_long']);
}
$evts[$id][] = $row['h_dt2'].' '.$row['h_ev'];
}
foreach($keys as $id => $key) {
$titres[] =
'["'.$data[$id][0].'"'
.','.$data[$id][1]
.','.$data[$id][2]
.'"'.implode('<br />', $evts[$id]).'"'
.']';
} |
Partager