Используя orderby в php, сделайте его убывающим …. как?

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь сделать так, чтобы пользователи могли сортировать определенный столбец по возрастанию или по убыванию, нажимая на маленькие ссылки arrow .gif.

Вот некоторый код:

 echo("<tr><td><a href="?orderby=quarterback_first desc"><!-- IMAGE HERE --></a>First Name</td>");
  

Моя проблема в том, что ?=orderby=quarterback_first работает просто отлично, но как только я помещаю туда desc, он не знает, что я хочу, чтобы он сортировал его по убыванию. Есть ли команда или что-то, чего мне не хватает, чтобы сделать так, чтобы он сортировал это так, как я хочу? Спасибо за ваше время! Первый пост, будь любезен. 🙂

Спасибо за ответы. Вот еще код:

 $orders=array("quarterback_draft_pick", "quarterback_pass_rating", "quarterback_first","quarterback_last", "quarterback_draft_year","quarterback_draft_round","quarterback_pass_comps","quarterback_pass_yards","quarterback_pass_td","quarterback_pass_int");
$key=array_search($_GET['orderby'],$orders);
$orderby=$orders[$key];
  

Комментарии:

1. Я предполагаю, что вы вводите это прямо в запрос MySQL. Как будет выглядеть запрос после того, как вы вставите часть с desc в?

2. Вы написали или унаследовали этот код? То, что вы опубликовали, — это фильтрация orderby параметра по набору допустимых значений. Добавление «desc» приводит к сбою проверки. Разделите orderby и параметры направления, как объясняет Фриц ниже

Ответ №1:

Возможно, более разумным решением было бы:

 ?orderby=quarterback_firstamp;direction=desc
  

Просто добавьте второй параметр.

Комментарии:

1. Я нахожу, что что-то подобное хорошо работает для проверки параметра direction — $direction = isset($_GET['direction']) amp;amp; strtoupper($_GET['direction']) == 'DESC' ? 'DESC' : 'ASC';

Ответ №2:

следите за пробелом между ‘quarterback_first’ и ‘desc’

попробуйте:

 echo("<tr><td><a href="?orderby=quarterback_firstamp;sort=desc"><!-- IMAGE HERE --></a>First Name</td>");
  

и получите значение desc через $_GET[‘sort’]

Комментарии:

1. Я немного запутался, как я должен отображать значение desc, включая его в переменную, понятную SQL.

2. SQL-Satatement: … Выберите * Из x УПОРЯДОЧИТЬ По столбцу DESC … в вашем случае используйте, например, Select * From x ORDER BY $orderby strtoupper($_GET[‘sort’])