出于某种原因,这仅显示最后的结果,而不是显示所有结果。 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>';
}
答案 0 :(得分:1)
使用mysql_num_rows()
确定查询返回的行数。如果它报告您只获得1个结果,那么您需要优化查询以获得您想要的结果数。
如果您在while循环之前使用其中一个mysql_fetch_*
函数,那么会推进光标并使您错过while
循环中的一个或多个结果。如果是这种情况,请在mysql_data_seek($result, 0)
循环之前调用while
。