What are some best practices for structuring and organizing PHP code when integrating database queries with image hotspots on a webpage?

When integrating database queries with image hotspots on a webpage, it is best practice to separate your PHP code into different files for better organization and maintainability. Create a separate file for your database connection, another file for your database queries, and a third file for rendering the image hotspots on the webpage. This separation of concerns will make your code easier to read, debug, and scale.

// database.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

// queries.php
<?php
include 'database.php';

function getHotspots() {
    global $conn;
    
    $sql = "SELECT * FROM hotspots";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        return $result->fetch_all(MYSQLI_ASSOC);
    } else {
        return [];
    }
}
?>

// hotspots.php
<?php
include 'queries.php';

$hotspots = getHotspots();

// Render image hotspots on webpage
foreach ($hotspots as $hotspot) {
    echo "<div style='position: absolute; top: {$hotspot['top']}px; left: {$hotspot['left']}px;'>{$hotspot['description']}</div>";
}
?>