PHP两次提取数据

her*_*ron 3 php mysql mysqli prepared-statement fetch

我的功能看起来像这样。

 private function generateTree($courseID) {
        $q = "SELECT l.id, l.name AS lesson_name, c.name AS course_name FROM lessons AS l, courses AS c WHERE l.course_id=c.id AND c.id=?";
        $stmt = $this->db->prepare($q);
        $stmt->bind_param("i", $courseID);
        $stmt->execute();
        $stmt->store_result();
        if ($stmt->num_rows > 0) {
            $stmt->bind_result($id, $lName, $cName);
            echo "<li> <a href='#'>$cName</a> <ul>";
            while ($stmt->fetch()) <====HERE!!!
                echo "<li> <a href='?course=$courseID&lesson=$id'> $lName </a></li>";
            echo "</ul> </li>";
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题是我开始在while条件下获取数据,但是我也需要在while之前获取数据。我可以两次取数据吗?还有其他建议吗?

Che*_*lab 5

已经四年了,但是如果有人像我一样偶然发现了这个问题:

while ($stmt->fetch()) {
  // do your thing
}

$stmt->data_seek(0);

while ($stmt->fetch()) {
  // do something other
}
Run Code Online (Sandbox Code Playgroud)

您可以在这里阅读文档