我编写了简单的PHP脚本来选择我的博客数据。 在这一刻,我在我的网站上有20个博客。它看起来不再好看了。 我想在1个网站上放置5个博客,其余的放在index.php?id = 2,3,4,5之类的。我正在寻找一些教程如何做到这一点。
<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
while($row = mysql_fetch_array($sql)){
$title = $row['title'];
$content = $row['content'];
$date = $row['date'];
?>
<?php
}
?>
有人可以帮我吗?
答案 0 :(得分:1)
如果您只想显示表格的5行,请使用:
$start = $_GET['id'] * 5;
$limit = 5;
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC LIMIT $start,$limit");
您可以获取页码并在查询中使用。 (从行$ start开始并显示前5名。)
要进行分页,首先应该获取表中所有行的计数。然后把它分成5。 (例如,表格中的行数是141,而141/5 = 28。所以你有28页。)
你应该将PHP代码和HTML结合起来进行分页。
答案 1 :(得分:1)
假设您想要使用GET数组传递起始页 - 正如您所写的那样。
设置默认值:
$pageNumber=0;
$postsPerPage=5;
获取当前页面编号:
$pageNumber=$isset($_GET['pn'])?:$pageNumber;
//try to secure this value i.e:
if(!is_numeric($pageNumber)) exit('Value not allowed');
制作SQL语句
$startRow=$pageNumber*$postsPerPage;
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC LIMIT ".$startRow.",'.$postsPerPage);
while($row = mysql_fetch_array($sql)){
$title = $row['title'];
$content = $row['content'];
$date = $row['date'];
//show your blog post as you want
}
生成寻呼机:
$sql = mysql_query("SELECT count(*) as total FROM blogData);
$data=mysql_fetch_assoc($sql);
$countBlogPosts=$data['total'];
for($i=0;$<$countBlogPosts;$i++){
if($i==$pageNumber){
echo $i+1;
}else{
echo '<a href="/?pn='.$i.'" > '.($i+1).' </a>';
}
if($i<$countBlogPosts-1) echo "|";
}
这应该有用。
答案 2 :(得分:0)
您要做的事情称为pagination。
例如,在查询中进行更改非常简单:
SELECT * FROM blogData ORDER BY id DESC LIMIT :start, :end
因此,您只需设法在查询字符串中传递正确的值。