2014-09-19 66 views
-1

這個問題與我之前提出的其他排序問題有點不同。PHP另一個排序問題

排序從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"; 
?> 

這已被折騰我一整天。現在我真的很想弄明白這一點。

請幫忙。

+0

是相關的(如果是的話,將其鏈接)的其他問題,還是你只是參考,因爲「PHP排序問題」不被接受作爲標題? – GolezTrol 2014-09-19 19:36:58

+1

你需要發佈相關的代碼,而不是切換回'DESC',因爲這不是你上面發佈的代碼 – cmorrissey 2014-09-19 19:37:49

+0

很可能'$ _GET ['d']'不是'DESC',但是這個代碼沒有辦法說出來。 – GolezTrol 2014-09-19 19:39:07

回答

-1

爲什麼你追加$ sort_order如果你需要它ASC或DESC?

$ 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; 
} 
?> 
+0

它看起來像'$ o'包含要排序的字段(列),添加了排序方向('$ d')。所以這種連接似乎是有道理的。 – GolezTrol 2014-09-19 20:04:06

+0

嘗試在單獨的變量中使用ASC或DESC以稍後添加到字符串中。 – Carca 2014-09-19 20:07:40