我对css,html,php,javascript等相当新,但我很慢但肯定在stackoverflow的帮助下构建了一个小型博客网站。请记住,我只编写了大约5个月的编码。
我正在寻找的是对分页的一些帮助,我已经搜索了但是我需要有人通过我的搜索向我指明方向或者至少帮助我一点。
我想"自动分页"我的页面,例如;如果我每页需要15个博客文章,在每个页面上我如何通过分页,php等自动执行此操作。我知道我可以手动执行此操作但随着我添加更多博客帖子随着时间的推移变得相当繁琐,所以我一直在寻找一种自动完成的方式"如果有办法..
提前感谢所有理解并愿意帮助的人!
答案 0 :(得分:0)
您可以使用$_SESSION
进行分页,这就是您所需要的:
例如,如果你有100个帖子(从0到99),你想要每页显示10个帖子,当前帖子是60,那么你将需要显示从60到69的帖子。这三个重要的部分数据可以存储在$_SESSION
个变量中:
$_SESSION[ "posts" ]
。$_SESSION[ "per_page" ]
。$_SESSION[ "current" ]
。您必须使用$_SESSION
,因为页面刷新后$_SESSION
数据仍然存在。
接下来是一个没有数据库的示例,因此"发布"存储在一个数组中。为了测试它,将文件中的下一个代码复制粘贴,将文件另存为.PHP并在浏览器中打开它:
<?php
session_start(); // NECESSARY TO USE $_SESSION.
// SAMPLE DATA.
$_SESSION[ "posts" ] = array( "aaa","bbb","ccc","ddd","eee","fff","ggg",
"hhh","iii","jjj","kkk","lll","mmm","nnn" );
$_SESSION[ "per_page" ] = 4; // PAGES PER PAGE.
if ( ! isset( $_SESSION[ "current" ] ) ) // IF THIS IS THE FIRST PAGE
$_SESSION[ "current" ] = 0; // CURRENT BLOG.
if ( isset( $_POST[ "submit" ] ) ) // IF "PREVIOUS" OR "NEXT" WERE PRESSED
{ if ( ( $_POST[ "submit" ] == "Previous page" ) &&
( ( $_SESSION[ "current" ] - $_SESSION[ "per_page" ] ) >= 0 ) )
$_SESSION[ "current" ] -= $_SESSION[ "per_page" ];
if ( ( $_POST[ "submit" ] == "Next page" ) &&
( ( $_SESSION[ "current" ] + $_SESSION[ "per_page" ] ) <
count( $_SESSION[ "posts" ] ) ) )
$_SESSION[ "current" ] += $_SESSION[ "per_page" ];
}
?>
<html>
<body>
Showing posts :
<br/>
<?php
// DISPLAY ONE PAGE OF POSTS (FROM CURRENT TO CURRENT + PER_PAGE - 1).
for ( $i = $_SESSION[ "current" ];
$i < ( $_SESSION[ "current" ] + $_SESSION[ "per_page" ] ); $i++ )
if ( isset ( $_SESSION[ "posts" ][ $i ] ) ) // IN CASE LAST PAGE IS ODD
echo $_SESSION[ "posts" ][ $i ] . "<br/>";
?>
<br/>
<form method="post">
<input type="submit" name="submit" value="Previous page"/>
<input type="submit" name="submit" value="Next page"/>
</form>
</body>
</html>
要将此功能与您已制作的博客网站配合使用,请获取帖子的ID并将其存储在数组中,然后在HTML部分中使用这些ID来获取帖子&#39;来自数据库的数据并将其显示在屏幕上。