Php 我怎样才能按年度降序和按月结帐订购表格?

Php 我怎样才能按年度降序和按月结帐订购表格?,php,mysql,Php,Mysql,我正在尝试从mysql数据库构建一个html表。一年中的月份将位于表格顶部(1-12月),年份将位于左侧第一列,2015年位于顶部,2008年位于底部。目前我已经按日期排序,降序。这意味着最新项目将位于左上角位置。然而,我需要它的排序由ASC为数月的一年,和DSC为数年。我假设我需要使用DATE_格式,但我不确定如何实现这一点。数据库中的日期格式如下:2014-07-01 $resource_where_conditions = '`publish` = \'y\' an

我正在尝试从mysql数据库构建一个html表。一年中的月份将位于表格顶部(1-12月),年份将位于左侧第一列,2015年位于顶部,2008年位于底部。目前我已经按日期排序,降序。这意味着最新项目将位于左上角位置。然而,我需要它的排序由ASC为数月的一年,和DSC为数年。我假设我需要使用DATE_格式,但我不确定如何实现这一点。数据库中的日期格式如下:2014-07-01

            $resource_where_conditions = '`publish` = \'y\' and `category_id` = ' . $cat_data['id'];
            $date_result = $db->selectByStrings($resource_data_fields, '`resource`', $resource_where_conditions, '`date` desc');
            $current_year = '';
            $base_url_query = (_USE_SEO_URLS === true) ? $_SERVER['PHP_SELF'] . '?' : $_SERVER['REQUEST_URI'] . '&';
            if ($req->isRequest ('year')) $url_year = $req->getRequest ('year');
            if ($db->getNumRows($date_result) > 0)  {
                $copy_investor_newsletter .= $tab0 . '<table class="table table-bordered table-responsive"><tbody><thead><tr><th>January</th><th>Feburay</th><th>March</th><th>April</th><th>May</th><th>June</th><th>July</th><th>August</th><th>September</th><th>October</th><th>November</th><th>December</th></tr></thead>' . $retn;
                while ($data = $db->getNextRow($date_result))   {
                    if (substr ($data['date'], 0, 4) != $current_year)  {
                        $current_year = substr ($data['date'], 0, 4);
                        if (!isset ($latest_year)) $latest_year = $current_year;
                        if (!isset ($url_year)) {
                            $navsel = ' class="ActNav"';
                            $url_year = $current_year;
                        } elseif ($url_year == $current_year)   {
                            $navsel = ' class="ActNav"';
                            $selected_year = $url_year;
                        } else $navsel = '';
                        $copy_investor_newsletter .= $tab1 . '<tr>';
                //      if ($url_year == $current_year) {
                            /*
                             * read and display all newsletters for selected year
                             */
                            $resource_where_conditions = '`publish` = \'y\' and `category_id` = ' . $cat_data['id'] . ' and substr(`date`,1,4) = \'' . $current_year . '\'';
                            $resource_result = $db->selectByStrings($resource_data_fields, '`resource`', $resource_where_conditions, '`date` desc');
                            if ($db->getNumRows($resource_result) > 0)  {
                        //      $copy_investor_newsletter .= $retn . $tab2 . '<ul>' . $retn;
                                while ($data = $db->getNextRow($resource_result))   {
                                    $copy_investor_newsletter .= $tab3 . '<td><a href="/includes/act_download.php?fid=' . $this_fund_id . '&rid=' . $data['id'] . '&cid=' . $cat_data['id'] . '&download=' . $data['file'] . '" target="_blank">' . $data['heading'] . '</a></td>' . $retn;
                                }
                            //  $copy_investor_newsletter .= $tab2 . '</ul>' . $retn . $tab1;
                            }
            //          }
                        $copy_investor_newsletter .= '</tr>' . $retn;
                    }
                }
                $copy_investor_newsletter .= $tab0 . '</tbody></table>' . $retn . $retn;
            }
$resource\u其中\u条件='publish`='y\'和'category\u id`='$cat_数据['id'];
$date\u result=$db->selectByString($resource\u data\u字段,`resource`',$resource\u where\u条件,`date`desc');
$本年度='';
$base\u url\u query=(\u USE\u SEO\u url==true)$_服务器['PHP_SELF'].'?':$_服务器['REQUEST_URI'].&';
如果($req->isRequest('year'))$url\u year=$req->getRequest('year');
如果($db->getNumRows($date\u result)>0){
$copy_investor_newsletter.=$tab0.“1月2日至3月4日至5月6日至9月10日至11月12日”。$retn;
而($data=$db->getNextRow($date\u result)){
if(substr($data['date'],0,4)!=当前年份){
$current_year=substr($data['date'],0,4);
如果(!isset($latest_year))$latest_year=$current_year;
如果(!isset($url\u年)){
$navsel='class=“ActNav”';
$url\u year=$current\u year;
}elseif($url\u年==$current\u年){
$navsel='class=“ActNav”';
$selected\u year=$url\u year;
}否则$navsel='';
$copy_investor_newsletter.=$tab1.';
//如果($url\u年==$current\u年){
/*
*阅读并显示所选年份的所有新闻稿
*/
$resource\u其中\u conditions=''publish`='y\'和'category\u id`='.$cat\u data['id'.'和substr('date`,1,4)='.$current\u year'.''''.';
$resource_result=$db->selectByString($resource_data_字段,`resource`',$resource_where_条件,`date`desc');
如果($db->getNumRows($resource\u result)>0){
//$copy_investor_newsletter.=$retn.$tab2.“
    ”.$retn; 而($data=$db->getNextRow($resource\u result)){ $copy_investor_newsletter.=$tab3.''.$retn; } //$copy\u investor\u newsletter.=$tab2.
。$retn.$tab1; } // } $copy_investor_newsletter.=''.$retn; } } $copy_investor_newsletter.=$tab0.''.$retn.$retn; }
尝试此SQL查询以获得所需的顺序:

SELECT * FROM Table ORDER BY YEAR(date) DESC, MONTH(date) DESC

尝试此SQL查询以获取所需的顺序:

SELECT * FROM Table ORDER BY YEAR(date) DESC, MONTH(date) DESC

尝试此SQL查询以获取所需的顺序:

SELECT * FROM Table ORDER BY YEAR(date) DESC, MONTH(date) DESC

尝试此SQL查询以获取所需的顺序:

SELECT * FROM Table ORDER BY YEAR(date) DESC, MONTH(date) DESC

不完全理解,你现在拥有的和你想要得到的有什么区别

但我认为你应该朝以下方向看:

选择日期格式(日期,'%c')月、日期格式(日期,'%Y')年、id、名称等
从…起按月份ASC、年份DESC订购

因此,您可以在数字演示文稿中选择月份,然后按月份进行订购。

不完全理解,您现在拥有的和您想要得到的有什么区别

但我认为你应该朝以下方向看:

选择日期格式(日期,'%c')月、日期格式(日期,'%Y')年、id、名称等
从…起按月份ASC、年份DESC订购

因此,您可以在数字演示文稿中选择月份,然后按月份进行订购。

不完全理解,您现在拥有的和您想要得到的有什么区别

但我认为你应该朝以下方向看:

选择日期格式(日期,'%c')月、日期格式(日期,'%Y')年、id、名称等
从…起按月份ASC、年份DESC订购

因此,您可以在数字演示文稿中选择月份,然后按月份进行订购。

不完全理解,您现在拥有的和您想要得到的有什么区别

但我认为你应该朝以下方向看:

选择日期格式(日期,'%c')月、日期格式(日期,'%Y')年、id、名称等
从…起按月份ASC、年份DESC订购

因此,您可以在数字表示中选择月份,然后按它排序。

SQL实际上有内置的
month()
YEAR()
函数。@jonbaldie是的,刚刚从Hassan Raza的回答中得出了这个结论。SQL实际上有内置的
month()
YEAR()
函数。@jonbaldie是的,刚从哈桑·拉扎的答案中得出这个结论。SQL实际上有内置的
MONTH()
YEAR()
函数。@jonbaldie是的,刚从哈桑·拉扎的答案中得出这个结论。SQL实际上有内置的
MONTH()
YEAR()
函数。@jonbaldie是的,刚从哈桑·拉扎的答案中得出这个结论。