Button 在yii中输入下一个/上一个按钮的最佳方式

Button 在yii中输入下一个/上一个按钮的最佳方式,button,yii,next,Button,Yii,Next,我想知道为数据库中的条目创建下一个/上一个按钮的最佳方法是什么。 假设我们有一个包含图像的表,每个图像都有一个ID和一个路径。 如果当前图像的ID等于“9”,如何获取下一个和上一个ID 我已经在这里找到了解决办法 但这似乎是最新的选择。如果我们的数据库中有超过10000个条目(图像),这将使服务器无法承受。首先,它选择所有条目,然后尝试将所有结果复制到一个数组中。在此之后,数组将搜索当前ID。速度非常慢 我正在考虑对查询设置一个限制,但在此之后我如何才能获得下一张和上一张图片 另一个(我认为更好

我想知道为数据库中的条目创建下一个/上一个按钮的最佳方法是什么。 假设我们有一个包含图像的表,每个图像都有一个ID和一个路径。 如果当前图像的ID等于“9”,如何获取下一个和上一个ID

我已经在这里找到了解决办法 但这似乎是最新的选择。如果我们的数据库中有超过10000个条目(图像),这将使服务器无法承受。首先,它选择所有条目,然后尝试将所有结果复制到一个数组中。在此之后,数组将搜索当前ID。速度非常慢

我正在考虑对查询设置一个限制,但在此之后我如何才能获得下一张和上一张图片

另一个(我认为更好的)解决方案是获取当前图片的ID,并递减/递增它,直到找到另一个具有新ID的图像。我认为这比链接中提供的功能要快

此外,在同一链接中还有另一个想法,即在当前图片的模型中设置上一个id和下一个id。但这里我们有同样的问题,我们如何找到他们?即使我们找到了它们,在当前图片中存储上一张/下一张图片的数据是否正确?这似乎不对,但我相信当您需要访问这些数据时,它会更方便


谢谢大家!

如果找到,此查询将仅返回下一行/上一行。更好? (应该在模型类中实现)

公共函数getNextId()
{
$record=self::model()->find(数组(
'条件'=>'id>:当前\u id',
“订单”=>“id ASC”,
“限制”=>1,
'params'=>array(':current_id'=>$this->id),
));
如果($record!==null)
返回$record->id;
返回null;
}
公共函数getPreviousId()
{
$record=self::model()->find(数组(
'条件'=>'id
public function getNextId()
{
    $record=self::model()->find(array(
            'condition' => 'id>:current_id',
            'order' => 'id ASC',
            'limit' => 1,
            'params'=>array(':current_id'=>$this->id),
    ));
    if($record!==null)
        return $record->id;
    return null;
}
public function getPreviousId()
{
    $record=self::model()->find(array(
            'condition' => 'id<:current_id',
            'order' => 'id DESC',
            'limit' => 1,
            'params'=>array(':current_id'=>$this->id),
    ));
    if($record!==null)
        return $record->id;
    return null;
}