找出博客文章显示在哪个页面


Working out what page a blog post is shown on

通常可以弄清楚这样的逻辑事情,但不知道如何做我想做的。

所以,我有不同的博客,可以包含许多文章。

我正在制作一个通知系统,并希望将用户链接到指定博客文章所在的页面。

的例子:

  • 用户在博客文章下留言。该博文ID为10。
  • 用户得到一个通知,我想链接到博客文章的特定博客和页码。

  • 该博客共有20条更新,每页显示4条。

那么在5个页面中,我如何确定博客文章显示在哪个页面上?

博客文章保存在一个表中,所有的文章都是随机的,因为它们都是在不同的时间添加的。

我希望这是有意义的,我无法理解它。

Craig。

如果你可以相信你的帖子都有不间断的,顺序的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)函数查找您想要的结果在哪个页面上。