I have 2 tables, Contacts and Contact_Info

I can relate the two with no problems and get the data I want based on the ID of the Contact. My issue is I want to show the Contact Once and the Contact Info as many times as I have that information.

I want this.
Contact Name: John T.
Contact Notes: Date, Entered contact into Database
Date, Called John T to say hello


What I get is,

John T. Date, Entered contact into Database
John T. Date, Called John T to say hello


My code is based on PHP MySQL Novice to Ninja

$sql = 'SELECT contacts.id, first, middle, last, contactdate, note FROM contacts INNER JOIN contact_notes ON contact_id = contacts.id WHERE contacts.id ="' . $_GET['id'] . '"';
$result = $pdo->query($sql);

catch (PDOException $e)

$error = 'Error fetching contacts: ' . $e->getMessage();
include $_SERVER['DOCUMENT_ROOT'] . '/tsfamily/includes/error.html.php';

while ($row = $result->fetch())

$contacts[] = array ('id' => $row['id'], 'first' => $row['first'], 'middle' => $row['middle'], 'last' => $row['last'], 'contactdate' => $row['contactdate'], 'note' => $row['note']);


<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<title>List of Contacts</title>
<?php foreach ($contacts as $contact): ?>
echo htmlspecialchars($contact['first'], ENT_QUOTES, 'UTF-8') . ' ';
echo htmlspecialchars($contact['middle'], ENT_QUOTES, 'UTF-8') . ' ';
echo htmlspecialchars($contact['last'], ENT_QUOTES, 'UTF-8') . ' ';
echo htmlspecialchars($contact['contactdate'], ENT_QUOTES, 'UTF-8') . ' ';
echo htmlspecialchars($contact['note'], ENT_QUOTES, 'UTF-8') . ' ';
<?php endforeach; ?>

I'm sure I need to move First, Middle and Last out of the For each loop in the HTML but I can't get it to work outside of that loop.