搜索
查看: 2727|回复: 7

读数据库取排名加军衔 -问题-跪求解决办法

[复制链接]
发表于 2008-2-22 04:35:17 | 显示全部楼层 |阅读模式 来自 中国–内蒙古–锡林郭勒盟–锡林浩特市
l_Score 是从数据库里读出来的分数,现在的问题是,不想用amxx自己代的排名而是按数据库里的分数给他配军衔,列排名.可以这样想,如果他的分数<0就是新兵,分数>= 10 就是 一等兵,并把军衔附值给变量 l_Place ,大家看看这里我的怎么写,再就是怎么样才能取得一个人在数据库里的排名?


if l_Score ="" then l_Place = 新兵
if l_Score < 0 then l_Place = 新兵
if l_Score >= 0 then l_Place = 列兵
if l_Score >= 10 then l_Place = 一等兵
if l_Score >= 50 then l_Place = 下士
if l_Score >= 100 then l_Place = 中士
if l_Score >= 150 then l_Place = 上士
if l_Score >= 200 then l_Place = 参谋军士
if l_Score >= 250 then l_Place = 军士长
if l_Score >= 300 then l_Place = 少尉
if l_Score >= 350 then l_Place = 中尉
if l_Score >= 400 then l_Place = 上尉
if l_Score >= 450 then l_Place = 少校
if l_Score >= 500 then l_Place = 中校
if l_Score >= 550 then l_Place = 上校
if l_Score >= 600 then l_Place = 准将
if l_Score >= 650 then l_Place = 少将
if l_Score >= 700 then l_Place = 中将
if l_Score >= 750 then l_Place = 上将
if l_Score >= 800 then l_Place = 五星上将
if l_Score >= 1000 then l_Place = 大元帅

谁给我把这些ASP的原码转成amxx的原码,谢谢,
发表于 2008-2-22 09:56:53 | 显示全部楼层 来自 中国–湖北–襄阳

回复: 读数据库取排名加军衔 -问题-跪求解决办法

用MYSQL的触发器,学几天,自己就会了!
回复

使用道具 举报

 楼主| 发表于 2008-2-22 23:50:20 | 显示全部楼层 来自 中国–内蒙古–锡林郭勒盟

回复: 读数据库取排名加军衔 -问题-跪求解决办法

QQ你来了啊.我就是用的你的那个BBS.我现在的问题就是怎么样才能取排名啊.?
请您说一下好吗?
回复

使用道具 举报

发表于 2008-2-23 11:07:52 | 显示全部楼层 来自 中国–湖北–襄阳

回复: 读数据库取排名加军衔 -问题-跪求解决办法

要说明整个过程不容易,总之,用触发器,工作是MYSQL的,AMXX只需要读取就可以了,并不需要在AMXX里面判断,看看MYSQL手册吧。
给你简要说明一下:触发器就是当满足某个条件的时候,自动执行指定的MYSQL脚本!
应该是可行的,具体的我没有测试过!
回复

使用道具 举报

 楼主| 发表于 2008-2-24 12:04:51 | 显示全部楼层 来自 中国–内蒙古–锡林郭勒盟

回复: 读数据库取排名加军衔 -问题-跪求解决办法

select count(*) from tblauthor a,tblauthor b where a.score>b.score and b.Username='我的名字';

可以成功的取得我的排名.可是在原码里我不会写啊,希望你还是给我写出来吧.先谢谢您了.QQ
回复

使用道具 举报

发表于 2008-2-24 16:04:58 | 显示全部楼层 来自 中国–湖北–襄阳

回复: 读数据库取排名加军衔 -问题-跪求解决办法

与源码无关,写的是MYSQL触发器!比较深层次的问题了,我自己都没试过,也没时间,只能看看而已,你自己动动手吧!
回复

使用道具 举报

 楼主| 发表于 2008-2-29 19:10:07 | 显示全部楼层 来自 中国–内蒙古–锡林郭勒盟

回复: 读数据库取排名加军衔 -已经解决

原码这样.
[php] g_dbc = dbi_connect(g_host,g_user,g_pass,g_dbname,g_error,MAX_NAME_LENGTH)
result = dbi_query(g_dbc,"select * from `%s` where score >= '%s'", g_sqlstats_table, g_score)
iRankPos = dbi_num_rows(result)
dbi_free_result(result)
dbi_close(g_dbc)[/php]
这也说明原来论坛中说MYSQL不能取排名是错误的.在这里再说一下.QQ你的原码里有些不足,
一些IF语句中你连接MYSQL数据库有些不对,就是,如果返回值是空.你就结束了语句,却没有及时断开数据库.这样就会造成数据库连接数过大而不能工作的现象,
回复

使用道具 举报

发表于 2008-2-29 19:27:11 | 显示全部楼层 来自 中国–广东–惠州

回复: 读数据库取排名加军衔 -问题-跪求解决办法

dbi_close(g_dbc)
不是断开mysql了吗?
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表