2014-09-19 2 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, кажется, DESC или ASC. $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, который теперь содержит заголовок, а также DESC или ASC.

В другом файле, называется CONFIG.PHP, я нашел эти переменные, связанные с сортировочной функции:

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

Это было разочарование мне весь день. Я действительно хотел, чтобы это выяснилось к настоящему времени.

Пожалуйста, помогите.

+0

ли другой вопрос релевантного (если да, то связать его), или же вы просто сослаться на него, потому что «сортировку PHP вопроса» не принимаются в качестве заголовка? – GolezTrol

+1

Вам необходимо опубликовать соответствующий код, связанный с ссылкой, которая не переключается на 'DESC', поскольку это проблема не в коде, который вы отправили выше. – cmorrissey

+0

Скорее всего' $ _GET ['d'] 'не' DESC', но об этом коде нельзя сказать. – GolezTrol

ответ

-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

+0

Попробуйте использовать ASC или DESC в отдельной переменной, которая будет добавлена ​​позже в строке. – Carca

Смежные вопросы