通常可以弄清楚这样的逻辑事情,但不知道如何做我想做的。
所以,我有不同的博客,可以包含许多文章。
我正在制作一个通知系统,并希望将用户链接到指定博客文章所在的页面。
的例子:
- 用户在博客文章下留言。该博文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)
函数查找您想要的结果在哪个页面上。