2012-02-02 34 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
相關問題