По какой-то причине это показывает только последний результат, а не показывает все. SQL работает в рабочей среде, и $ roommate экранируется, но код был обрезан для публикации:
$sql = "SELECT CONCAT(clients.studentFirstName, ' ', clients.studentLastName) AS name, appointments.location, appointments.subLocation, appointments.startTime, appointments.endTime, appointments.date
FROM appointments JOIN clients
ON appointments.clientID = clients.clientID
WHERE CONCAT(clients.studentFirstName, ' ', clients.studentLastName) = '".$roommate."';";
while ($row = mysql_fetch_array($result)) {
echo
'<table>
<tr>
<td>'
.$row["name"].
'</td>
<td>'
.$row["location"].
'</td>
<td>'
.$row["subLocation"].
'</td>
</tr>
<tr>
<td>'
.$row["startTime"].
' - </td>
<td>'
.$row["endTime"].
'</td>
<td>'
.$row["date"].
'</td>
</tr>
</table>';
}