【问题标题】:Non sequential Pagination PHP非顺序分页 PHP
【发布时间】:2013-01-28 14:20:05
【问题描述】:

我目前正在尝试在 PHP 中设置某种分页,但运气不佳。我发现的所有教程都是按 ID 顺序完成的,所以 +1 或 -1 但在我的情况下不起作用。

我正在尝试显示链接到客户的不同送货地址。到目前为止,我已经连接到 MySQL,运行查询以获取我需要的信息并将其放入一个数组中,这个数组现在存储一个 ID 和一个客户 ID。每个 ID 都不同,因为它们是在不同时间添加的。例如一个是 379,同一个客户 ID 也是 707,所以我不能只 +1。

我希望这些细节能有所帮助。有没有办法设置它,所以生成的链接只有这些 ID?因此,如果用户选择客户 ID 14,那么他们只能看到链接到 14 的收货地址,可能是收货地址 300 和 500?

非常感谢你的阅读,如果你能走到这一步,我不知道,我几乎把我所有的头发都拔掉了!

【问题讨论】:

  • 似乎问题与您的分页脚本无关,而是与您尝试显示的行的查询有关。
  • 感谢您的回答,但我不确定您要说什么?关于我需要做什么?
  • 例如:您正在执行 SELECT * FROM sometable LIMIT 0,10;您需要添加的只是 WHERE customer_id = 14,这将向您显示该特定客户的所有结果。我假设您在谈论分页链接 (+1/-1) 所以 ?page=2 (2 并不意味着它的 ID 为 2,它是导致生成查询 LIMIT $page(in this如果是一个,那么它应该是 2)*$limitOfRowsPerPage, $limitOfRowsPerPage
  • 那么你读错了教程,或者读错了。分页与结果集中的偏移量有关,而不是“ids”。例如您在第 10 页,每页显示 20 条记录,您可以通过 select ... limit 100,20 获得第 10 页。第 9 页是 limit 80,20,第 11 页是 limit 120,10。您无需在任何地方直接处理记录 ID。只是偏移量。
  • @MarcB 干得好,我不知道自己该如何解释 :)

标签: php html mysql navigation pagination


【解决方案1】:

好的,因此您将获取客户地址的 ID,并将该数字作为索引值放入您的数组中。

您希望对数组进行交互,但由于数字的原因,您无法迭代 + 1。

在阵列上使用foreach()。例如

foreach ($array as $key=>$value) {
    echo "$key : $value <br />";
}

$key 将是您设置的地址的 ID。您可以对其进行操作以仅创建指向这些地址的链接。我希望我已经理解你的要求。

【讨论】:

  • 我认为这不是他想要的。他不是在问数组的迭代,而是更可能是关于数据的实际选择(与 MySQL 相关)。他还可以使用 for 循环遍历数据,因为返回的结果集最有可能被数字索引。
  • @monkeymatrix ,您好,感谢您的回答,但我将如何实现此代码?例如,到目前为止我所看到的是生成 html 链接并使用类似 $key + 1 的东西?哪个似乎不起作用?
  • 如果你的结果集放在$array,你可以像上面那样循环遍历它来创建HTML链接。所以做类似echo "&lt;a href="yourpage.php?addressID=$key"&gt;Address ID: $key&lt;/a&gt;"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多