Files
test/php/camlist.php
2025-12-09 13:14:27 +00:00

57 lines
1.4 KiB
PHP

<?php
require_once __DIR__ . '/common.php';
header('Content-Type: application/json; charset=utf-8');
// Initialize response array
$response = [];
// Database connection
try {
$dbconn = getDBConnection();
// Performing SQL query
$query = "SELECT url, lat, lon, elevation, county, state, active, aspect, bloomsky, source, method FROM cams where active = true";
$result = pg_query($dbconn, $query);
if (!$result) {
throw new Exception('Query failed: ' . pg_last_error());
}
// Fetch results
$data = [];
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
// Ensure numeric values are properly typed
$line['lat'] = floatval($line['lat']);
$line['lon'] = floatval($line['lon']);
$line['elevation'] = floatval($line['elevation']);
$line['active'] = $line['active'] === 't' ? true : false; // Convert PostgreSQL boolean
$data[] = $line;
}
$response = [
'status' => 'success',
'data' => $data,
'count' => count($data)
];
// Free resultset
pg_free_result($result);
} catch (Exception $e) {
http_response_code(500);
$response = [
'status' => 'error',
'message' => $e->getMessage()
];
}
// Output JSON
echo json_encode($response, JSON_PRETTY_PRINT | JSON_NUMERIC_CHECK);
// Close database connection when needed
if (isset($dbconn)) {
pg_close($dbconn);
}
?>