gpt4 book ai didi

php - 选择具有多个优先级和有限最大条目的数据

转载 作者:行者123 更新时间:2023-11-29 13:45:40 25 4
gpt4 key购买 nike

我需要创建一个 PHP 脚本来从具有多个优先级的 MySQL 表中选择数据?

MySQL的每一行都是对若干“体育学科”的应用,以运动员得分作为评分的关键。

体育栏目优先考虑每个希望参加具体体育运动的参与者。每项运动的名额有限。

这意味着如果他的第一优先级不满足(例如,他在列表中排名第 31,但只有 30 个位置可用),那么下一个优先级必须如他所愿。

一个例子:

ID  | Name   | Tenis   | Swiming  |  Basketball | Runing     | Score|-----------------------------------------------------------------------1   |John    |0        |1         |2            |3           |80    |-----------------------------------------------------------------------1   |Bill    |1        |2         |3            |4           |65    |-----------------------------------------------------------------------1   |Arnold  |0        |1         |0            |2           |70    |-----------------------------------------------------------------------

每个弟子都有其最大参与人数。举个例子:

$max_tenis = 5; $max_swiming = 8;$max_basketball = 10;$max_runing = 9;

我想为每项运动选择所有应用程序,并检查它们是否满足设置的限制。

因此,如果我选择所有篮球,如果最后一个优先级不满足限制,我必须选择优先级高于第一优先级(或第二、第三......)的所有其他应用程序。

最佳答案

我不能 100% 确定是否理解您的请求,但我猜您想优先考虑得分最高的人。

为了解决这个问题,我怀疑是否可以用 SQL 来完成这一切,我会通过 php 脚本来解决这个问题。我还假设这个脚本不必进行 super 优化,因为它不会经常运行。

所以我的建议是在上表中添加一个名为“分配”的字段。

然后我会将所有运动项目声明为一个数组并分配最大值

$sport_slots = array("running" => 9, "basketball" => 10);

然后我会在 table 上进行计数,并在计数后执行一个 while 循环,以便我们知道我们将与所有人一起工作。

然后我会选择得分最高的人。

select * from `people` where `score`=(select max(`score`) from people) AND assigned=0;

根据这些结果...确定他们选择参加哪种运动的项目...确保它在 sport_slots 数组中有一个插槽 (!= 0)。如果是,则从体育条目中减一并更新要分配的条目=1。

如果您需要有关此代码的特定部分的帮助,请回复。

关于php - 选择具有多个优先级和有限最大条目的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com