yii 中条目的下一个/上一个按钮的最佳方式

2024-01-11

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

我已经在这里找到了解决方案https://stackoverflow.com/a/8874382 https://stackoverflow.com/a/8874382但这似乎是最新的选择。如果我们的数据库中有超过 10000 个条目(图像),这将使服务器不堪重负。首先,它选择所有条目,然后尝试将所有结果复制到数组中。之后,在数组中搜索当前 ID。速度非常慢。

我正在考虑对查询设置限制,但是在此之后如何获取下一张和上一张图片?

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

另外,在同一个链接中还有另一个想法,在当前图片的模型中设置 prev_id 和 next_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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yii 中条目的下一个/上一个按钮的最佳方式 的相关文章

  • Yii框架异步请求

    我有一个执行 3 个任务的 ajax 请求 保存模型 数据库 发电子邮件 给出成功或失败的消息 因为这个任务需要的时间太长了 用户最多可以等待 20 秒以获得响应 成功或失败消息 如果用户关闭浏览器 则其会停止用户当前进程的操作之一 这是糟
  • 在材料表和reactjs中自定义分页的任何示例

    有自定义分页的示例吗 材料表和reactjs 我想将页面大小传递到服务器 并且需要隐藏分页中的第一个和最后一个按钮 研究这个例子https material table com docs features component overrid
  • 如何配置Spring boot分页从第1页开始,而不是从0开始

    boot 1 4 0 可分页 用于分页 它工作正常 没有任何问题 但默认情况下 页面值从 0 开始 但在前端 页面值从 1 开始 那么是否有任何标准方法来增加值而不是手动增加代码内的页码 public Page
  • Yii2 无效调用:设置只读属性

    我有一个Post具有多对多关系的模型Tags 在 Post 模型中定义 public function getTags return this gt hasMany Tags className id gt tag id gt viaTab
  • 有什么方法可以在 Django 中序列化分页对象吗?

    我正在使用 Django 分页和 jQuery 我可以序列化分页对象的对象列表 但我想序列化整个对象以获取更多数据 页码 总页数 如何序列化整个分页对象 Thanks javascript function getRestaurants q
  • SQL 未插入到 Yii 中具有关系的表中

    我正在尝试创建一个用户 但所有值都没有插入到数据库中 Systems user 表与partys 表有关系 因为party id 是sytems user 的主键 没有插入任何内容 甚至没有错误 它只是返回到 创建 页面 这是我的架构 Ta
  • 如何在 Yii 框架中使用 jQuery?

    如何在 yii 中使用 jquery javascript 如何在 yii 中使用我的脚本 为什么这与以其他方式使用 jQuery 有什么不同 如何在yii中使用jquery 如上所述 您可以注册新的脚本块 也可以注册新的外部脚本文件 您还
  • 在活动之间共享菜单栏

    我的应用程序上有一个菜单栏 我需要在 5 个活动之间共享该菜单栏 我的菜单栏 5 个允许在活动之间切换的按钮 对于任何活动具有完全相同的 UI 和相同的行为 因此我想共享菜单栏 XML 视图代码和控制器代码 我已经找到了一种使用共享 XML
  • HTML 中的

    我有一个带有按钮的网页 目前 我将此按钮绑定到一个 javascript 处理程序 该处理程序使页面在单击时重定向到给定的 URL HTML
  • Soundcloud API 不明确支持 json 分页

    我正在使用的具体示例 http api soundcloud com users dubstep tracks json client id YOUR CLIENT ID http api soundcloud com users dubs
  • 如何将按钮放置在 UITableView 上方(而不是导航栏中)?

    I am new to iphone programming I am learning uitableview at the moment I need to create an app that has buttons above ta
  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • 使用 LinearLayout 将按钮放在屏幕底部?

    我有以下代码 如何使 3 个按钮位于底部
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • Oracle查询结果分页无TABLE FULL SCAN数据访问方式

    stackoverflow 上有很多关于如何正确执行分页的问题 对于 Oracle 来说 最流行的答案是这样的 select from select row rownum rownum from select from some table
  • 更改 yii 中注册脚本文件的顺序

    我正在为 Yii 应用程序制作一个小部件 主布局视图注册了所有常见的脚本文件 例如 jQuery 和 jQueryUI 在我的小部件中 我想使用依赖于已加载的 jQueryUI 的 jQueryUI 插件 我知道我可以指定脚本包含在页面上的
  • 属性“tablename.title”未定义

    我是伊比 我想做的是上传图像 照片 以及具有更新功能的数据库中的路径条目 我已点击此链接 http www yiiframework com wiki 349 how to upload image photo and path entry
  • 更新 Bootstrap 缩略图网格 - ajax 请求

    设想 我有一个带有显示国家 地区的 Twitter Bootstrap 缩略图网格的视图 当用户单击一张图像时 它应该在同一网格 屏幕 中显示与该国家 地区相关的城市 技术的 首先 我用国家 地区填充 dataProvider 然后我应该将
  • 如何单击网络浏览器控件中的按钮?

    例如 使用代码并且没有用户输入 我如何让我的程序点击 google 上的 搜索 按钮 假设我已经填写了搜索框并且位于 google com webBrowser1 Navigate http www google com 如果你有一个ID用
  • Yii 使用 ajax 进行分页

    我需要使用ajax启用分页 我的代码 控制器 更新内容ajax function actionIndex dataProvider new CActiveDataProvider News array pagination gt array

随机推荐