PHP分页 |设置 1
PHP主要用于根据用户的要求存储和显示数据库中的数据。例如,假设我们组织了一场比赛,现在有挑战展示排行榜。我们的活动非常成功,参与人数超过一万人。现在,如果我们必须在一页上显示整个列表,页面会很长,因此它可能不是显示列表的最佳方式。我们可以做的是将整个列表分布在多个页面中。这种将单个列表分布在多个页面中的方法称为分页。现在让我们看看分页的优点和缺点。
分页的缺点
- 让我们考虑一个外部观众显着减少的事件,因此如果您发布排行榜,则参与的少数用户可能希望跟踪排行榜而不是整个排行榜。用户将倾向于看到自己的排名和排名靠前的人的表现。因此,如果我们将排行榜分布在多个页面中,那么我们必须提供一种特殊的方式,以便用户可以导航到其用户名出现在排名列表中的页面。在许多情况下,这似乎有点太多了,因此在这种情况下可以忽略分页。
- 分页是纯粹的开销,即分页是一个附加功能,可以以额外的标记、样式和逻辑为代价来实现。因此,拥有一个包含数百条记录的小型数据集,使用分页通常会被忽略。
分页的优点
- 在其中一个缺点中,我们知道分页本身是一种开销,但分页还可以让我们避免一次加载大量信息。例如,让我们考虑一个应该显示大量图像列表的图库网页,现在在单个页面中显示数千张图片将需要数千个 HTTP 请求,这将使页面高度无响应,而使用分页我们可以显示页面中的图像数量有限,从而限制了 HTTP 请求,此外还创建了一个更高效的页面。
- 将分页用于中大型项目总是更好,因为分页不仅使网页工作更快更高效,而且看起来更精确和专业。
实现分页
现在为了实现分页,我们首先需要一个大数据集,我们将对其应用分页。为了这个迷你项目的简单性,我们将使用 Bootstrap 和最小的显式样式。看到之前比赛ProGeek Cup 1.0的成功,我们会考虑制作ProGeek Cup 2.0的排行榜,所以让我们先从创建标记开始。
我们将尽量保持整个页面尽可能简单,包含标题、简短描述和排行榜表本身。
标记
在开始PHP的 fetch 和 show 循环之前,让我们首先设置表格的基本界面。在“WWW”文件夹/“htdocs”文件夹中创建文件夹并创建“index.html”后PHP”文件,我使用下面的标记得到了一个基本的表格界面,如下图所示。
ProGeeks Cup 2.0
ProGeeks Cup 2.0
This page is just for demonstration of Basic
Pagination using PHP.
Rank
Name
College
Score
有关在 Bootstrap 中使用表格的更详细说明,请参阅以下文章。既然我们已经设法开发了基本标记,我们就必须准备好我们的数据。
数据
如果我们想使用分页,我们必须有相当多的数据在页面之间分布。现在您可以搜索示例数据集或创建您自己的数据集。现在为简单起见,我使用以下Python脚本创建了一个假排名列表以显示在网页上。通过使用随机库生成的数据不太明显,使用 CSV 格式可以直接导入 MySQL。
import csv, random
firstNames = ["Anuran", "Bappa", "Deep", "Dhanraj",
"Harsh", "Sabyasachi", "Saptarshi",
"Sayan", "Shubham", "Sampriti", "Susmita",
"Pronab", "Vaskar", "Sanjeeb", "Anirudh"]
lastNames = ["Pandit", "Das", "Bhattacharjee", "Rathi",
"Agarwal", "Mishra", "Garg", "Pal", "Khan",
"Ganguly", "Dutta", "Mukherjee", "Lodhi",
"Malhotra", "Gupta"]
collegeNames = ["IIT Delhi", "IIT Kharagpur", "BIT Mesra",
"JIT", "Jadavpur University", "IIT Roorkee",
"KGEC", "SMIT", "EIEM", "CGEC", "JGEC",
"IISC Bangalore", "IIIT Allahabad",
"IIT Kanpur", "IIT BHU"]
dataTemplate = [['Rank', 'Name', 'College', 'Score']]
Rank, maxScore = 1, 3000
for x in xrange(1500):
i = random.randint(0, 14)
j = random.randint(0, 14)
k = random.randint(0, 14)
entry = [str(Rank), firstNames[i]+" "+lastNames[j],
collegeNames[k], str(maxScore)]
dataTemplate.append(entry)
maxScore-= random.randint(1, 3)
Rank+= 1
targetFile = open('pagination.csv', 'w')
with targetFile:
writer = csv.writer(targetFile)
writer.writerows(dataTemplate)
print "Done"
在上面的代码中,我们采用了三个名字、姓氏和大学名称的列表。我们的动机是制作一个虚假的排名列表。我们将迭代 1500 次,每次我们将生成三个随机索引来获得随机名字、随机姓氏和大学。我们还将生成第四个随机整数,表示与前一个排名保持者的分数差异。现在我们有了 CSV 文件,我们将转到“phpmyadmin”并导入文件以创建一个新表。下图解释了整个过程和结果。
现在我们已经建立了我们的数据库并完成了我们的标记,我们基本上已经准备好了我们的主干,只需要跳转到PHP部分本身。从这篇文章的篇幅来看,如果我们在下一篇完全专注于实现一个基本的分页系统的文章中开始会更好。