How can the SELECT query in the provided PHP code be optimized to display both guestbook entries for user 2?

The SELECT query in the provided PHP code can be optimized by using a JOIN clause to fetch both guestbook entries for user 2 from the database in a single query. By joining the 'users' table with the 'guestbook' table on the 'user_id' column, we can filter the results to only display entries for user 2. This will improve performance and reduce the number of queries executed.

<?php
// Connect to the database
$connection = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($connection->connect_error) {
    die("Connection failed: " . $connection->connect_error);
}

// Query to fetch guestbook entries for user 2
$sql = "SELECT g.entry, u.username FROM guestbook g
        JOIN users u ON g.user_id = u.id
        WHERE u.id = 2";

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

if ($result->num_rows > 0) {
    // Output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Username: " . $row["username"]. " - Entry: " . $row["entry"]. "<br>";
    }
} else {
    echo "0 results";
}

$connection->close();
?>