我有一个非常小的表,我需要运行显示有关注册用户的一些数据(名称,用户名)。
$query = mysql_query("SELECT * FROM users ORDER BY Username ASC") or die(mysql_error());
while($user = mysql_fetch_assoc($query))
{
echo '<tr><td>' . $user['Username'] . '</td>';
echo '<td>' . $user['FullName'] . '</td>';
echo "<td><a href=\"deleteUser.php?id=" . $user['ID'] . "\">Delete</a><br /><a href=\"editUser.php?id=". $user['ID'] . "\">Edit</a></td></tr>";
}
无论如何,假设我有50多个用户,所有页面都会被用户充斥。
所以我想到了一个解决方案,从数据库中拉出的每15行都会有自己的“页面”(使用$ _GET)。 我的一个朋友告诉我这是一种叫做分页或分页的东西,我真的不记得了。我确实在网上找到了一些解决方案,但没有人帮助我,有些看起来很长,我只是寻找另一个教程。
有没有一种有效的方法可以做到这一点而不会涉及到它周围的东西?
答案 0 :(得分:1)
它被称为分页:您可以使用LIMIT语句在MySQL中使用它。
$page = (int) $_GET['page'];
$limit = 15;
$offset = $page * $limit;
$query = mysql_query("SELECT * FROM users ORDER BY Username ASC LIMIT $offset,$limit");
此外,您需要使用相同的查询计算页面总数而不使用LIMIT:
$query = mysql_query("SELECT count(1) AS total FROM users");
$total = mysql_fetch_assoc($query)['total'];
然后你可以计算你有多少页:
$pages = range(0, ceil($total/$limit));
foreach($pages as $p)
echo '<a href="?page=' . $p . '">' . $p . '</a>';
显然,您应该根据自己的需要调整此代码。