query('SELECT id, name FROM countries ORDER BY name')->fetchAll(PDO::FETCH_ASSOC);
$countryId = filter_input(INPUT_GET, 'country_id', FILTER_VALIDATE_INT) ?: null;
$operatorsSql = 'SELECT id, name, mcc, mnc, country_id FROM operators';
$operatorsParams = [];
if ($countryId) {
$operatorsSql .= ' WHERE country_id = ?';
$operatorsParams[] = $countryId;
}
$operatorsSql .= ' ORDER BY name';
$stmt = $db->prepare($operatorsSql);
$stmt->execute($operatorsParams);
$operators = $stmt->fetchAll(PDO::FETCH_ASSOC);
$operatorId = filter_input(INPUT_GET, 'operator_id', FILTER_VALIDATE_INT) ?: null;
$page = max(1, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) ?: 1);
$perPage = 50;
$offset = ($page - 1) * $perPage;
$sites = [];
$totalSites = 0;
$stats = null;
if ($operatorId) {
$countStmt = $db->prepare('SELECT COUNT(*) FROM sites WHERE operator_id = ?');
$countStmt->execute([$operatorId]);
$totalSites = (int)$countStmt->fetchColumn();
$stmt = $db->prepare(
'SELECT s.id, s.name, s.lat, s.lon,
(SELECT COUNT(*) FROM cells c WHERE c.site_id = s.id) AS cell_count
FROM sites s
WHERE s.operator_id = ?
ORDER BY s.name
LIMIT :limit OFFSET :offset'
);
$stmt->bindValue(1, $operatorId, PDO::PARAM_INT);
$stmt->bindValue(':limit', $perPage, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$sites = $stmt->fetchAll(PDO::FETCH_ASSOC);
$statStmt = $db->prepare(
"SELECT c.technology, COUNT(*) AS total
FROM cells c
INNER JOIN sites s ON s.id = c.site_id
WHERE s.operator_id = ?
GROUP BY c.technology
ORDER BY total DESC"
);
$statStmt->execute([$operatorId]);
$stats = $statStmt->fetchAll(PDO::FETCH_ASSOC);
}
$totalPages = max(1, (int)ceil($totalSites / $perPage));
$user = current_admin_username();
?>
Antennes par opé··rateur — NetMonster Admin
Antennes par opé··rateur
Vue de consultation, sans action d'ecriture. Filtrez par pays puis par operateur pour lister les sites et leur nombre de cellules.
Ré··partition par technologie
Aucune cellule pour cet opé··rateur.
| Technologie | Nombre de cellules |
| = htmlspecialchars((string)$s['technology'], ENT_QUOTES, 'UTF-8') ?> |
= (int)$s['total'] ?> |
Sites (= $totalSites ?>)
| Nom |
Latitude |
Longitude |
Cellules |
Dé··tail |
| = htmlspecialchars((string)$site['name'], ENT_QUOTES, 'UTF-8') ?> |
= htmlspecialchars((string)$site['lat'], ENT_QUOTES, 'UTF-8') ?> |
= htmlspecialchars((string)$site['lon'], ENT_QUOTES, 'UTF-8') ?> |
= (int)$site['cell_count'] ?> |
Ouvrir |
| Aucun site pour cet opé··rateur. |
Sé··lectionnez un opé··rateur pour afficher ses sites.