2012-02-02 38 views
1

我正在创建一个网站,其中将列出一个页面(包含内容)列出的文章。想一想博客风格。不过,我认为在一页上完整显示50篇文章会有点荒谬,所以我想知道自动将它分成页面的最佳方式是什么。设计分页界面的最佳方式

我正在使用PHP和MySQL从数据库中读取文章。

+2

沿最好是有点暧昧。如果你的意思是特定的东西,请澄清。 – Ktash 2012-02-02 19:20:05

+0

我只是在寻找任何方式,真的。我不知道从哪里开始。 – muttley91 2012-02-02 19:21:34

+0

放入CMS试试WordPress,它很受欢迎,并且在社区中有很多支持。 – Relic 2012-02-02 19:27:26

回答

2

一对夫妇的建议,可以混合和与其他事物相匹配。

  1. 查询X条文章。在页面底部有一个链接,指向下一个X号码,该号码用于查询上一篇文章显示后开始的X篇文章。确切的代码将取决于你如何组织事情,但基本上只是将X文章称为1页的内容,然后给你的动态页面一个值,从它开始的偏移量。
  2. 特别不错,如果你有长篇文章,使用一些Ajax或甚至只是很好的ole老式JavaScript来“扩大”文章。限制他们的显示只是第一段左右,然后有一个“阅读更多”按钮,显示文章内容的其余部分。如果它嵌入在页面中,并隐藏/显示与CSS和JavaScript它仍然会被搜索引擎索引。
  3. 可能比以前的SEO目的更好。将每篇文章放在它自己的页面上,并让您的文章列表只显示第一段或更多的“阅读更多”链接,带您到整篇文章页面。这可能是更可取的,因为a)它很容易(KISS总是一个好方法)b)它为您的网站提供了更多独特的页面,而不会混淆关键字(对搜索引擎优化很有用)c)文章可以直接和容易地从其他网站链接(适合搜索引擎优化)

只是有些想法。从来没有一种“最好”的方式来做任何事情,只是在上下文中更有意义的方式。

1

计数的物品的数量,在当前类别,每个网页的量

鸿沟总得到的总页数。从MySQL,其中id>(每页页次*量)

创建导航链接在每页量

选择的文章。

例子查询:

$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 0, 20"; // This will return the first 20 

$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 40, 20"; // This will return 40-60 

注:这就是所谓的分页以供将来参考/搜索。有很多很好的例子,以及一些为你处理这个问题的框架。

简明教程:http://www.phpfreaks.com/tutorial/basic-pagination

1

我并不专门使用PHP,但采取这种方式的一般策略是设计查询以根据每页所需项数和应跳过的项数动态限制。换句话说,你的SQL是沿着线以下:

$stmt = $mysqli->prepare("SELECT id, title, createdDate FROM tArticles ORDER BY createdDate desc LIMIT :skip, :itemsPerPage"); 

如果你按页码跟踪这一点,您:跳过绑定参数将采取当前页码(从0开始)导出并乘以每页的项目数量。

你也许应该看看the answer for this question以避免潜在的常见陷阱,因为需要在绑定之前将变量作为整数进行强制转换。

1

我记得有一次我把如何Blogger做这个一看,这是很有意思的

它是这样的:

  • 有一个默认的post-timestamp(应该是最新的职位)
  • 有一个默认display-per-page(像10-20)
  • 然后让你的数据库的搜索开始在post-timestamp和 限制搜索到display-per-page
  • 带来的“下一个”链接在搜索的最后一个职位的post-timestampdisplay-per-page
相关问题