重置结果指针而不使用mysql_data_seek

时间:2013-02-13 18:33:05

标签: mysql pointers pdo reset

我想在获取记录集后做两件事。从第一个记录打印firstname和lastname(所有记录将具有相同的名称),然后在其下输出表中该记录集的所有记录。获取第一条记录的行为会将指针向上移动一条记录,因此无效。我想在获得第一个和第一个之后重置指针。第一条记录的姓氏。我正在使用PDO,除了我读过的内容之外, mysql_data_seek 已被弃用。

以下是我目前正在做的事情(也许效率低下,因为我正在做的是重新运行相同的查询来获取完整的记录集 - 或者它可以吗?):

   $query = "SELECT students.*, lessons.lessonname, assignments.assignmentid, assignments.complete, assignments.score    
            FROM lessons INNER JOIN 
            (assignments INNER JOIN students 
            ON assignments.studentid = students.id) 
            ON lessons.lessonid = assignments.lesson
            WHERE (((students.id)=".$_POST['viewstudentdrop']."))";
    $results = $pdo->query($query);
    $row = $results->fetch(); //just get the first record.
    echo 'Assignments for: ' . $row['firstname'] . " " . $row['lastname']. "<br>";        
    $results = $pdodl->query($query); //resets pointer

1 个答案:

答案 0 :(得分:1)

$results = $pdo->query($query);
$data = $results->fetchAll();
$row  = reset($data);
echo 'Assignments for: ' . $row['firstname'] . " " . $row['lastname']. "<br>";        
foreach ($data as $row) {
...