сортировать по XXX по ASC или DESC, динамический порядок, mysql …

это скорее запрос, чем проблема. Я хотел бы создать динамическую сортировку для моих результатов базы данных mysql. Я в настоящее время выводят результаты с запросом. Я хотел бы создать 2 ссылки, которые будут сортировать результаты по выбранной ссылке, еще раз щелкнуть по ссылке ASC или DSEC.

Я искал, но не могу найти правильный способ сделать это.

Я даже загрузил структуру, чтобы увидеть, как это делается, но не к успеху. пример выглядит следующим образом:

TITLE TOTAL

Насколько это звучит, я не могу найти динамический пример онлайн.

Кто-нибудь еще находит google поставляет больше результатов в устаревшие и форумы, чем реальные полезные страницы? Даже если вы отсортируете по прошлому году и релевантность. Надеюсь, кто-то может дать мне несколько советов по этому поводу, спасибо

Solutions Collecting From Web of "сортировать по XXX по ASC или DESC, динамический порядок, mysql …"

<?php // build the basis for the query $sql = ' SELECT `id`, `title`, `total` FROM `my_table` '; // check for sort field $sort_by = isset($_GET['s']) ? $_GET['s'] : false; // validate the sort field (avoid Bobby Tables!) and provide default switch ($sort_by) { case 'title': case 'id': case 'total': break; default: $sort_by = 'id'; } $sql .= ' ORDER BY '.$sort_by.' '; // get the direction, or use the default $direction = isset($_GET['d']) ? $_GET['d'] : false; if ($direction != 'ASC' && $direction != 'DESC') $direction = 'DESC'; $sql .= $direction; // execute query, get results $res = mysql_query($sql); $results = array(); if ($res) { while ($r = mysql_fetch_assoc($res)) { $results[] = $r; } } // used in table heading to indicate sort direciton $sort_arrow = ($direction == 'ASC' ? '<img src="up_arrow.png" />' : '<img src="down_arrow.png" />'); // used to build urls to reverse the current sort direction $reverse_direction = ($direction == 'DESC' ? 'ASC' : 'DESC'); ?> <table> <thead> <th scope="col" class="<?php echo $sort_by == 'id' ? 'sortColumn' : ''; ?>"> <a href="myscript.php?s=id&d=<?php echo $reverse_direction; ?>">ID</a> <?php echo $sort_by == 'id' ? $sort_arrow : ''; ?> </th> <th scope="col" class="<?php echo $sort_by == 'id' ? 'sortColumn' : ''; ?>"> <a href="myscript.php?s=title&d=<?php echo $reverse_direction; ?>">Title</a> <?php echo $sort_by == 'title' ? $sort_arrow : ''; ?> </th> <th scope="col" class="<?php echo $sort_by == 'id' ? 'sortColumn' : ''; ?>"> <a href="myscript.php?s=total&d=<?php echo $reverse_direction; ?>">Total</a> <?php echo $sort_by == 'total' ? $sort_arrow : ''; ?> </th> </thead> <tbody> <?php if (count($results) > 0) { foreach ($results as $r) { print '<tr>'; print '<th scope="row">'.$r['id'].'</th>'; print '<td>'.$r['title'].'</td>'; print '<td>'.$r['total'].'</td>'; print '</tr>'; } } else { print '<tr><td colspan=3>No results found</td></tr>'; } ?> </tbody> </table> 
 <?php $order = ($_GET['order'] == 'asc') ? 'asc' : 'desc'; $sql = "SELECT .... FROM ... WHERE ... ORDER BY TITLE $order"; mysql_query($sql) or die(mysql_error()); ... $new_order = ($order == 'asc' ) ? 'desc' : 'asc'; ?> <table> <thead><tr> <th><a href="scriptname.php?order=<?php echo $new_order ?>">TITLE</a></th> <th>Total</th> </tr></thead> etc.... 

так я сделал это на C #, вы можете использовать сеанс вместо viewstate, остальное будет таким же.

 if (Convert.ToString(ViewState["sortField"]) == SortExpression){ if (ViewState["sortDir"].ToString() == "ASC") { ViewState["sortDir"] = "DESC"; } else { ViewState["sortDir"] = "ASC"; } } else { ViewState["sortDir"] = "ASC"; } ViewState["sortField"] = SortExpression; 

Вы можете взять переменную сортировки из URL с $ _GET ['sort'], например. site.php? sort = ASC и передать его в запрос, помните о проверках здравомыслия!