在sql请求和while循环之后只显示一个结果

时间:2011-12-23 06:08:46

标签: php sql while-loop

出于某种原因,这仅显示最后的结果,而不是显示所有结果。 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>';

}

1 个答案:

答案 0 :(得分:1)

使用mysql_num_rows()确定查询返回的行数。如果它报告您只获得1个结果,那么您需要优化查询以获得您想要的结果数。

如果您在while循环之前使用其中一个mysql_fetch_*函数,那么会推进光标并使您错过while循环中的一个或多个结果。如果是这种情况,请在mysql_data_seek($result, 0)循环之前调用while