0

大家:在我目前使用 PHP 和 MYSQL 的项目中,我需要一些帮助。我有一个包含大量用户信息的数据库。

例如:

报告年=2012

姓名:陈泰文

年龄:20

学校:理学院

上学时间:2011-2015

中文:1

英语:2

综合评分:B

我想做的事情是按几个优先级排序:

  1. 由于我只使用当前年份(2012)的报告,因此首先检查它是否是当前年份;

  2. 检查是否超过3个周期,如果是,继续;

  3. 然后排序 ASC 进行整体评分;--->如果整体评分相同,则以英文排序;--->如果英文也一样,就用中文排序;

  4. 按上述优先级排序后显示所有信息的表格;

现在,我可以显示当前年份的信息表并检查周期是否在 3 以上,但我很困惑如何比较以前排序的数据而不是表中的数据?

例如。

$sorting_year=mysql_query("SELECT * FROM $tbl_name where year = $current_year");

(要继续对符合上述条件的数据进行排序......)

谢谢~~


谢谢大家,它可以对符合上述条件的数据进行排序。

但是,其余不符合上述条件的数据,我也想在表格中显示,但将所有这些数据放在表格的最后并按学校分组。如何选择它们并排序为最后?

示例:(最后所有数据将显示在表格上)

1.John period>3 BAA 2011 //因为第二个A高于B

2.贝蒂期>3 BBA 2011 //期>3和2011

3.Louis (period<3) AAA 2011 //period<3 but is 2011

4.Mary period>3 AAA (2010) //2010=[虽然 period>3

4

3 回答 3

1
$sorting_year=mysql_query("SELECT * FROM $tbl_name where year = $current_year ORDER BY `overall grading`,`English`,`Chinese`");

对于附加问题:

$sorting_year=mysql_query("
       (SELECT * FROM $tbl_name where year = $current_year 
        ORDER BY `overall grading`,`English`,`Chinese`) 
       UNION
       (SELECT * FROM  $tbl_name where year <> $current_year
        GROUP BY school)
");
于 2012-08-01T07:07:34.207 回答
1
SELECT * FROM $tbl_name 
where year = $current_year
and period > 3
order by `overall grading` asc, english asc, chinese asc
于 2012-08-01T07:07:59.870 回答
0

您可以使用 sql 执行 1,3 和 4 并使用 php 循环记录并过滤掉那些不支持条件 2 的记录。

这是 SQL 语句:

SELECT * FROM table_name where report_year = $current_year order by overall_grading asc, English desc, Chinese desc
于 2012-08-01T07:25:33.500 回答