为什么我的时循环吐出同一行50次以上?php



这是我的代码:

public function GetLatestUsers(){
    $statement = $this->Db->prepare("SELECT * FROM users ORDER by id DESC LIMIT 10");
    $statement->execute();
            
    return $statement->fetch(PDO::FETCH_ASSOC);
}

这是while循环:

<?php  
    
    while($row = $crud->GetLatestUsers()){     
?>
        <tr>
            <td></td>
            <td><?php echo $row['id']; ?></td>
            <td><img src="" style="border-radius:15px; margin-right:10px;" width="25px" height="25px">  <?php echo $row['username'] ?></td>
            <td><font color="green">Positive</font></td>
            <td>Confirmed</td>
            <td><a href="">Feedback</a></td>
        </tr>
<?php
    }    
?>

这只是返回同一行的50多个,也就是数据库中唯一的一行,但是它只能返回一次?

您在每个循环中再次运行查询。

$result = $crud->GetLatestUsers();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
// do whatever.
}

getlateStusers应该返回语句。

return $statement;

您正在运行查询并从函数返回一行,并且while循环正在无限运行(可能直到最大执行时间过期(。最好是将所有行作为一个数组返回:

$statement = $this->Db->prepare("SELECT * FROM users ORDER by id DESC LIMIT 10")
$statement->execute();
return $statement->fetchAll(PDO::FETCH_ASSOC);

然后循环函数的返回:

foreach($crud->GetLatestUsers() as $row){
    // do stuff with $row
}

最新更新