我正在尝试从mysql数据库获取post数据。我使用while循环从表中获取行。我的mysql数据库中有五行。但它正在获取行,直到我的浏览器崩溃。为什么会这样?如何解决这个问题?
这是主代码:
<div class="container clearFix">
<?php
while ($result = Data::fetch_table('posts')) {
?>
<div class="post">
<div class="post-title">
<h2><?php echo $result['title'];?></h2>
</div>
<div class="date">
Published on: <?php echo $result['post_date'];?>
</div>
<div class="post-body">
<?php echo $result['body'];?>
</div>
<div class="read-more">
<a href="sh07/post.php?id=<?php echo $result['id'];?>">Read More</a>
</div>
</div>
<?php
}
?>
</div>
下面是数据类代码:
类数据{
public static function fetch_table($table_name) {
// Connection variables
$con = new Database;
$con = $con->connection();
// SQL Queries
$sql = "SELECT * FROM $table_name";
$result = $con->query($sql);
return $result->fetch_assoc();
}
注意:数据库连接已在数据类中建立。
谢谢你的帮助。
1条答案
按热度按时间uqcuzwp81#
当你打电话的时候
fetch_table
连接到数据库,进行查询,然后返回第一个结果。你的while循环一直运行,直到没有结果为止……这永远不会发生,因为你总是从一个新的连接开始,给它第一个结果。
您需要连接到数据库一次,进行查询一次,然后只重复调用
fetch_assoc
直到排满为止。