#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’])