通常可以找出这样的逻辑事物,但不能想到如何做我想要的事情。
所以,我有不同的博客,可以包含很多帖子。
我正在建立通知系统,并希望将用户链接到指定博客文章所在的页面。
示例:
用户会收到一条通知,我想将其链接到博客文章所特定的博客和页码。
该博客共有20个更新,每页显示4个。
所以在5页中,我如何确定博客帖子显示在哪个页面上?
博客帖子保存在一个表格中,所有帖子都是随机顺序,因为它们是在不同的时间添加的。
我希望这是有道理的,不能理解它。
克雷格。
答案 0 :(得分:0)
如果您相信自己的帖子都有不间断的顺序ID,那么它就会出现在ceil($post_id / $posts_per_page);
或ceil(10 / 4);
或3
页上。
但是,您可能无法相信ID是完全顺序的(删除后,或者可能是未发布的帖子等),因此您必须获取结果数组,然后弄明白:
$results = array(
// Page 1
array('id' => 1, 'title' => 'First Post'),
array('id' => 29, 'title' => 'Foo'),
array('id' => 53, 'title' => 'Bar'),
array('id' => 5, 'title' => '...'),
// Page 2
array('id' => 87, 'title' => '...'),
array('id' => 9, 'title' => '...'),
array('id' => 147, 'title' => '...'),
array('id' => 18, 'title' => '...'),
// Page 3
array('id' => 19, 'title' => '...'),
array('id' => 10, 'title' => 'The One We Are Looking For!'),
array('id' => 201, 'title' => '...'),
array('id' => 112, 'title' => '...'),
// Page 4
array('id' => 13, 'title' => '...'),
array('id' => 214, 'title' => '...'),
array('id' => 15, 'title' => '...'),
array('id' => 146, 'title' => '...'),
// Page 5
array('id' => 25, 'title' => '...'),
array('id' => 27, 'title' => '...'),
array('id' => 30, 'title' => '...'),
array('id' => 32, 'title' => 'Last Post For Now'),
);
$post_per_page = 4;
$target_post_id = 10;
$results_key_we_need = false;
$page_in_results = 1;
foreach ($results as $key => $value)
{
if ($value['id'] == $target_post_id)
{
$results_key_we_need = $key + 1;
$page_in_results = ceil($results_key_we_need / $post_per_page);
break;
}
}
echo $page_in_results;
这样,无论您的结果集如何生成,您仍然可以使用ceil(x/y)
函数搜索您想要的结果页面。