codeigniter得到prev和下一个博客页面链接

时间:2017-02-16 16:23:05

标签: php mysql codeigniter

我正在尝试在模型中创建一个函数来检索某个博客帖子页面的上一页和下一页链接。博客帖子保存在数据库中的表中,其中包含不同类型的页面,因此ID不是有序的。 到目前为止我所获得的是获得一个数组,其中所有页面都被“标记”为博客文章。 为清楚起见,这是数组:

Array
(    

   [0] => stdClass Object
        (
            [id] => 2127
            [options] => news=on
        )


   [1] => stdClass Object
        (
            [id] => 2133
            [options] =>  news=on
        )

    [2] => stdClass Object
        (
            [id] => 2137
            [options] =>  news=on
        )

    [3] => stdClass Object
        (
            [id] => 2138
            [options] => news=on
        )

    [4] => stdClass Object
        (
            [id] => 2139
            [options] => news=on
        )

    [5] => stdClass Object
        (
            [id] => 2142
            [options] =>  news=on
        )

    [6] => stdClass Object
        (
            [id] => 2144
            [options] => news=on
        )

    [7] => stdClass Object
        (
            [id] => 2145
            [options] => news=on
        )

    [8] => stdClass Object
        (
            [id] => 2146
            [options] => news=on
        )

    [9] => stdClass Object
        (
            [id] => 2153
            [options] => news=on
        )

    [10] => stdClass Object
        (
            [id] => 2156
            [options] =>  news=on
        )

)

我可以获取当前的页面ID,我想获得上一个和下一个ID,例如当我在ID为2133的页面上时,我想获得ID 2127和2137.

我已经搜索并尝试了一些解决方案,但它们没有用。 请帮忙!

2 个答案:

答案 0 :(得分:0)

假设您的StdObjects数组名为$ myArray,您可以使用此方法获取id的数组。

$idArray = array();
foreach($myArray as $m=>$o) {
  $idArray[]= $o->id;
}

print_r($idArray); 

给你

Array (
    [0] => 2127
    [1] => 2133
    [2] => 2137
    [3] => 2138
    [4] => 2139 
)

你可以从$ idArray中提取你需要的id。

答案 1 :(得分:0)

@ourmandave: 我用了你的建议,最后想出了整个解决方案。如果有人需要id,我会在这里写下来。

    // get the all the blog pages 
    $blog_pages = $this->pages_model->get_links();

    $idArray = array();
    foreach($blog_pages as $m=>$o) {
      $idArray[]= $o->id;
    }
    // Find the index of the current item
    $current_index = array_search($current_page->id, $idArray);
    // Find the index of the next/prev items
    $next = $current_index + 1;
    $prev = $current_index - 1;

    // and now finally sent the data to view
    $data['prev'] = $this->pages_model->get($idArray[$prev]);
    $data['next'] = $this->pages_model->get($idArray[$next]);