我正在研究马评级系统,我需要根据另一个(已填充)字段的值(所有这些都存储在 MySQL 数据库中)为每匹马分配值。
考虑以下简化示例:-
四马比赛,每匹马的赔率如下:-
马 A - 2/1 马 B - 3/1 马 C - 3/1 马 D - 5/1
由于马 A 的价格最低,我想给它一个值 1。
但是,马 B 和 C 的价格相同,所以我想给他们两个。
马 D 的价格次之,所以我想给它 3 的值。
当我第一次开始这样做时,我认为这很容易,但现在已经到了循环让我发疯的阶段。任何建议将不胜感激。
提前谢谢了。
鉴于我在下面收到的来自 Daan 的回复,我还应该补充一点,我的问题由于我的表格有几个子集而更加复杂(即,它在任何一天都包含不止一场比赛,并且需要单独排名) .
我的桌子目前是:-
比赛日期 | 比赛时间 | 赛马场 | 马名 | 预测 | 预测率 | ID
为此目的,比赛日期将始终相同。赛马时间和赛马场共同确定了有问题的比赛。
预测是给每匹马的价格(在这个阶段已经输入),这是需要对其进行共享排名以存储在 predict_rate 中的价格。
id 只是表中每个条目的唯一索引。
这就是我现在要做的(它不起作用......惊喜......)
$testdude=mysql_query("SELECT DISTINCT racecourse,racetime FROM picking") or die(mysql_error());
while($rih=mysql_fetch_array($testdude)){
$testdude1=mysql_query("SELECT s1.forecast, s1.horsename, COUNT(DISTINCT s2.forecast) AS rank FROM picking s1 JOIN picking s2 ON (s1.forecast <= s2.forecast) GROUP BY s1.horsename;");
while($rih1=mysql_fetch_array($testdude1)){
mysql_query("UPDATE picking SET forecast_rate='$testdude1[rank]' where horsename='$testdude1[horsename]'") or die(mysql_error());
}
}