PHP另一个排序问题

时间:2014-09-19 19:31:49

标签: javascript php sorting

这个问题与我提出的其他排序问题略有不同。

排序从DESC开始。您可以点击标题,它将更改为ASC,但当您再次点击该链接时,它不会更改回DESC

以下是排序代码:

 <?php
 if (isset($_GET['o'])) {
   $o = $_GET['o'];
   if (escape_data($o)) {
     $sort_order = $o;
     $d = $_GET['d'];
     if ($d == "DESC") {
       $sort_order .= " DESC";
     }
     else {
       $sort_order .= " ASC";
     }
   }
   else{
     $sort_order = $init_sort_order . " " . $asc_or_desc;
     $sort_error = TRUE;
 }
 else{
   $sort_order = $init_sort_order . " " . $asc_or_desc;
 }
 ?>

变量$o是名称标题(这是一个链接),$ d似乎是DESCASC$d$o看似合并,因此当它进入查询时,查询将如下所示回显:

 $query = "SELECT $db_return, MATCH($db_query) AGAINST ('$trimmed' IN BOOLEAN MODE) AS relevance FROM $db_table WHERE delete_flag = 'N' and MATCH($db_query) AGAINST ('$trimmed' IN BOOLEAN MODE)
ORDER BY $sort_order"; 

注意$sort_order,现在包含标题以及DESCASC

在另一个名为CONFIG.PHP的文件中,我发现这些变量与排序功能相关联:

 <?php
 $init_sort_order = "relevance"; 
 $asc_or_desc = "DESC";
 ?>

这让我整天感到沮丧。我现在真的很想弄明白这一点。

请帮忙。

1 个答案:

答案 0 :(得分:-1)

如果您需要ASC或DESC,为什么要附加$ sort_order?

$ sort_order。=“ASC”;应该是$ asc_or_desc =“ASC”;

 <?php
 if (isset($_GET['o'])) {
   $o = $_GET['o'];
   if (escape_data($o)) {
     $sort_order = $o;
     $d = $_GET['d'];
     if ($d == "DESC") {
       //$sort_order .= " DESC";
         $asc_or_desc = " DESC";
     }
     else {
       //$sort_order .= " ASC";
         $asc_or_desc = " ASC";
     }
   }
   else{
     $sort_order = $init_sort_order . " " . $asc_or_desc;
     $sort_error = TRUE;
 }
 else{
   $sort_order = $init_sort_order . " " . $asc_or_desc;
 }
 ?>