PHP 中 MySQL 结果的分页

2024-02-09

直到最近我才真正考虑过这个(分页)作为一个问题。当我坐下来专注于它时,我发现自己面临很多问题。

我感兴趣的是一个基本的联系人管理系统,用户可以在其中添加/更新/删除/搜索联系人。搜索部分是我需要有效实现分页的地方。

我的想法(+ve 和 -ve 点)

  • 我可以指定pageNo and offset while POST正在向我的search.php页。该页面将触发一个简单的 MySQL 查询来检索结果。由于行数几乎可以达到数千行,因此我需要对其进行分页。很简单,但我需要启动same对每个不同的页面进行一次又一次的查询。这意味着,当用户从 page1 转到 page2 时,将触发相同的 MySQL 查询(当然使用不同的查询)offset),我觉得这是多余的,并且正在努力避免。
  • 然后我想到捕捉entire结果集,并将其存储到$_SESSION,但在这种情况下,如果结果只是huge?它会以任何方式影响性能吗?
  • 在与第二点类似的行中,我想到将结果写到一个文件中,这简直是垃圾! (我只是把它放在这里,作为一个观点。我知道这是非常糟糕的做事方式。)

我的问题:

A。我要实施上述哪种方法?哪一个更好?还有其他方法吗?我用谷歌搜索了一下,但我发现大多数例子都遵循上面的第1点。

B。我的问题1:我们如何依赖mysql结果的顺序?假设用户在一段时间后导航到第2页,我们如何确定在第二次期间,第一个页面的记录不会重复? (因为,我们正在做一个新的查询)..

C。 MySQL 资源到底是什么?我明白,一个mysql_query(..)返回一个resource。它是全局的吗?它维护对 PHP 脚本的不同调用之间的状态? (我可以将资源维护在$_SESSION).

太感谢了! :-)

PS:我知道这是一个很长的问题。我只是试图以简洁的方式表达我脑海中的想法。


使用你的第一个建议。带有偏移量的那一个。这是进行分页的“标准”方式。将整个结果集放入会话中是一个坏主意,因为每个用户都有自己的私有数据副本。如果遇到性能问题,您可以随时添加缓存(memcache),这将使所有访问数据的用户受益。

MySQL 将始终以相同的方式生成您的数据。第 1 页中的记录出现在第 2 页上的唯一方法是,在用户从第 1 页导航到第 2 页之间插入新记录。换句话说:您无需担心。

对于 MySQL 来说,资源是一个指向结果集的指针。然后您可以对其进行操作(逐行获取数据、计算返回的行数等)。它不是全球性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中 MySQL 结果的分页 的相关文章

随机推荐

  • Android getContext 在后台服务上

    我正在尝试创建一个Service即使我的应用程序关闭 它也会运行 但是 我需要使用我的应用程序Context里面这个Service 当应用程序运行时 该服务也可以工作 但是当我关闭应用程序 调用了 onDestroy 时 getContex
  • Safari 上的 facebook 应用程序 iframe 登录问题

    我有一个使用 iframe 的 Facebook 应用程序 facebook 在 iframe 中加载我的网站 当我单击链接时 我的网站会显示一个 iframe 使用 lightbox 来显示 Facebook 登录信息 在 ff 即 ch
  • 将访问令牌存储在客户端浏览器的会话存储中是否安全?

    我正在 Web API 中使用基于令牌的身份验证来对用户进行身份验证 我正在使用客户端浏览器会话存储来存储访问令牌 这样做安全吗 我应该把它存放在哪里才能更安全 btnLogin click function ajax Post usern
  • 我的 jQuery 切换类函数正在触摸屏设备上创建超链接效果

    当鼠标悬停在我的网站标题上时 我使用 jQuery 添加了 css 过渡效果 使其从透明背景变为白色背景 添加附加类时 我在触摸屏设备上遇到了一个非常奇怪且意想不到的问题 active 我只能假设这种情况发生在所有触摸屏设备上 因为我只有
  • 在每个循环中从 ArrayList 中删除对象

    我想从一个对象中删除一个对象ArrayList当我完成它时 但我找不到方法 尝试像下面的示例代码一样删除它是行不通的 我怎样才能到达当前的迭 代器px要删除这个循环中的对象吗 for Pixel px pixel if px y gt gH
  • 我应该选择哪个 C++ 信号/槽库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在不使用 QT 的项目中使用信号 槽库 我有非常基本的要求 使用任意数量的参数连接两个函数 信号可以
  • 删除不与 JpaRepository 一起使用的内容

    我有一个 spring 4 应用程序 我试图从数据库中删除实体的实例 我有以下实体 Entity public class Token implements Serializable Id SequenceGenerator name se
  • Delphi多线程文件写入:I/O错误32

    我创建了一个类 用于在文本文件中写入线程安全日志 使用CriticalSection 我不是 CriticalSection 和多线程编程 和 Delphi 的专家 我肯定做错了什么 unit ErrorLog interface uses
  • Spring Security 401未经授权,即使有permitAll

    我正在使用 Spring security 来保护 REST 服务中的某些端点 这是安全配置类 Configuration EnableWebSecurity EnableGlobalMethodSecurity securedEnable
  • 如何保存 LibSVM python 对象实例?

    我想在其他计算机上使用这个分类器 而不必再次训练它 我曾经使用 cPickle 从 scikit 保存一些分类器 对 LIBSVM 做同样的事情 它给了我一个 ValueError 包含指针的 ctypes 对象不能被腌制 我正在使用 Li
  • ASP.NET 用户控件类库

    是否可以创建包含 UserControls 的类库以便我可以重用它们 如果是这样 怎么办 标记是否与 dll 一起编译 谢谢你的帮助 您可以编译两者UserControls and Page进入类库 因为最终 这就是您的网站发布后发生的情况
  • 具有颜色渐变的 UIBezierPath

    我有一个关于 UIBezierPath 的问题 例如我有这条路径 现在我想要从白色到红色的颜色渐变 从左到右 这是我的代码 UIBezierPath bezierPath bezierPath UIBezierPath bezierPath
  • 使用 RVM 时如何安装 Ruby gems?

    我设置了 RVM 并用它来安装 Ruby 和其他一些库 当我浏览各种教程和其他技术 如 Rails 的设置时 我开始对我应该通过 RVM 做什么以及我应该按照教程建议做什么感到困惑 此处的 RubyGems 教程就是一个示例 http ru
  • scrapy如何制作自己的调度程序中间件

    我正在使用 Python 2 7 和 Scrapy 0 20 我的问题 如何构建我自己的调度程序 我尝试过的 我通过互联网阅读并发现了这一点 我必须创建自己的 python 类并使用 SCHEDULER MIDDLEWARES 在设置中分配
  • 生成不连续重复的随机数

    如何生成 0 4 之间的随机整数 并且不会连续两次生成相同的数字 例如 如果第一次生成的数字为3 则第二次随机生成的可能数字为0 1 2 4 如果第二次生成2 则第三次随机生成的可能数字为0 1 3 4 以此类推 int oldrand
  • Spring saml - 在 SP 上发起登录时如何记住请求参数,并在 IdP 响应后处理它们

    我想记住我的网站 SP 的第一个请求中的 url 请求参数 并在 IdP 响应后使用它们 我正在使用 spring saml 扩展并考虑 relayState 属性 但找不到如何使用请求中的参数构建它的示例 我需要在 sso 身份验证过程后
  • 时间复杂度 嵌套循环 内循环 + 外循环

    谁能解释一下这个算法的时间复杂度是多少 for i 1 i lt n i for j 1 j lt n j i note not j printf Iteration d d n i j The printf在内循环中称为exactly c
  • 相机2输出位图

    我正在尝试使用谷歌移动视觉API https developers google com vision barcodes overview使用camera2模块 我遇到了很多麻烦 我正在使用谷歌的android Camera2Video h
  • 使 google-chrome 浏览器在页面加载时全屏显示

    即使您将其标记为重复 也请考虑在此处回答此问题因为出于某种原因 我无法让它与其他解决方案一起使用 尽管我试图寻求帮助 但没有人回复 我真正想要的是 document ready function browser goes fullscree
  • PHP 中 MySQL 结果的分页

    直到最近我才真正考虑过这个 分页 作为一个问题 当我坐下来专注于它时 我发现自己面临很多问题 我感兴趣的是一个基本的联系人管理系统 用户可以在其中添加 更新 删除 搜索联系人 搜索部分是我需要有效实现分页的地方 我的想法 ve 和 ve 点