[英]How to make Students Position (ist, 2nd, 3rd, 4th) depending on their scores
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`names` varchar(30) NOT NULL,
`matricno` varchar(30) NOT NULL,
`class` varchar(30) NOT NULL,
`scores` varchar(30) NOT NULL,
`subject` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
$con = mysqli_connect("localhost", "root", "1024", "sch_one");
if (!$con) {
echo "Failed to connect to Database". mysqli_error();
}
INSERT INTO `users` (`id`, `names`, `matricno`, `class`, `scores`) VALUES
(1, 'Henry Okon Etim', '15/HCSS/001', 'A', 800),
(2, 'Henry Okon Etim', '15/HCSS/002', 'A', 804),
(3, 'Etim Okon Etim', '15/HCSS/003', 'A', 820),
(4, 'Lavalish Okon Etim', '15/HCSS/004', 'A', 730),
(5, 'Pherema Okon Etim', '15/HCSS/005', 'A', 920),
(6, 'Leman Okon Etim', '15/HCSS/006', 'A', 803),
(7, 'Lema3 Okon Etim', '15/HCSS/007', 'A', 500);
I am on a project that gives students positions based on their final scores. 我参与的一个项目根据学生的最终成绩为他们提供职位。 My problem is how to output positions according to the scores in a as 1st, 2nd, 3rd, 4th, 5th and so on. 我的问题是如何根据1、2、3、4、5等中的分数输出位置。 Please explanations and codes are welcome. 请解释和欢迎代码。 Thanks! 谢谢!
请尝试以下代码:
SELECT * FROM users ORDER BY scores DESC;
From what I'm understanding you want to pimary keys(1/2/3..) to reflect their position? 根据我的理解,您想使用键(1/2/3 ..)来反映它们的位置吗?
That's not what the id's are for, if you want to order them you can just add an order by in your get query. 这不是ID的目的,如果要订购它们,只需在get查询中添加一个订购者即可。
$result = $mysqli->query("SELECT * FROM users ORDER BY scores desc");
If you really want an index/counter in your select, you could always take a look at ranking in mysql, end result would be something like this: 如果您确实想要选择索引/计数器,则可以随时查看mysql中的排名,最终结果将如下所示:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, users.* FROM users ORDER BY scores DESC;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.