How can PHP be utilized to filter and process data based on IDs retrieved from a database for a specific functionality like a radius search?

When implementing a radius search functionality, you can retrieve the IDs of locations within the specified radius from the database and then filter and process the data accordingly. One way to achieve this in PHP is to use a SQL query that calculates the distance between two sets of coordinates (latitude and longitude) and filters the results based on the radius. After retrieving the IDs, you can further process the data as needed.

// Assume $db is your database connection

// Input parameters for the radius search
$centerLat = 37.7749; // Latitude of the center point
$centerLng = -122.4194; // Longitude of the center point
$radius = 10; // Radius in miles

// SQL query to retrieve IDs within the specified radius
$sql = "SELECT id, (3959 * acos(cos(radians($centerLat)) * cos(radians(lat)) * cos(radians(lng) - radians($centerLng)) + sin(radians($centerLat)) * sin(radians(lat))) AS distance FROM locations HAVING distance < $radius";

$result = $db->query($sql);

if ($result->num_rows > 0) {
    // Process the retrieved IDs
    while($row = $result->fetch_assoc()) {
        $locationId = $row['id'];
        // Further processing based on the retrieved IDs
    }
} else {
    echo "No locations found within the specified radius.";
}