-2

所以,我有一个页面allocate.php?id=XXXXX。它基本上是根据 id 值从数据库中的各个表中提取数据,并相应地显示出来。它还允许用户编辑和处理相关数据。

现在,与 id 值关联的主表也有一个字段“优先级”,它决定了我需要遍历表的顺序。问题是:

  1. 假设我在“allocate.php?id=10000”页面上。它的“优先级”值为 1。

  2. 下一页应显示“优先级”值为 2 的详细信息。它被分配给 ID 为“20001”的课程。基本上,我希望接下来转到“allocate.php?id=20001”。

  3. 那么如何在每个分配页面上提供一个动态链接,该链接链接到下一个最高优先级分配的 id 值?

如果您需要更多信息,这里是确切的表格:

CREATE TABLE IF NOT EXISTS `course` (
  `id` varchar(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  `priority` int(2) NOT NULL,
  PRIMARY KEY (`id`)
)

以下是值:

TUSCE100101
Course 101
1

TUSCE100102
Course 102
2

TUSCE100201
Course 201
2

NTUSCE100202
Course 202
3

TUSCE200301
Course 301
1

TUSCE200302
Course 302
4

谢谢!

编辑:对于那些低估这个问题的人可能认为它太简单或者我没有进行足够的研究,我的问题是当我检查优先级大于等于并排序结果时,不计算当前页面,那么我可能处于我在相同优先级的课程之间切换的情况。例如:

  1. 课程 101,102 和 103 具有相同的优先级。

  2. 我在 101,搜索下一个的查询以随机顺序给我 102 和 103。我选择第一个值,比如 102。

  3. 现在在 102 上,相同的搜索选择查询会给我 101 和 103,第一行可能是 101。所以我最终来回切换。

编辑 2

所以,我最终解决了这个问题。这里供以后参考。

我定义了一个名为“访问”的附加列,以指示特定行是否已被访问。未访问时默认值为 0。

访问每一行后,我将访问值标记为 1,并根据“SELECT id FROM course WHERE priority >= $currentPriority AND id!=$currentId AND visit=0”之类的查询选择下一个值。

在最后一行,当上述选择查询不返回任何内容时,我再次将所有“访问”设置为 0,并仅根据基于“优先级”的有序查询选择第一个。这使我可以无限循环遍历表格。

PS感谢您的所有帮助。老实说,我对社区的奇怪反应感到有些失望,尽管我相信我的问题是我的问题不是很清楚。对我的解决方案的反馈将不胜感激。

4

1 回答 1

-1
SELECT * FROM course WHERE id!=$currentID AND priority>=$currentPriority ORDER BY priority ASC

此 SQL 查询将为您提供下一项。

于 2012-08-30T08:24:44.927 回答