Same name and namespace in other branches
  1. 4.6.x includes/tablesort.inc \tablesort_sql()
  2. 4.7.x includes/tablesort.inc \tablesort_sql()
  3. 5.x includes/tablesort.inc \tablesort_sql()

Create an SQL sort clause.

This function produces the ORDER BY clause to insert in your SQL queries, assuring that the returned database table rows match the sort order chosen by the user.

Parameters

$header: An array of column headers in the format described in theme_table().

$before: An SQL string to insert after ORDER BY and before the table sorting code. Useful for sorting by important attributes like "sticky" first.

Return value

An SQL string to append to the end of a query.

Related topics

15 calls to tablesort_sql()
comment_admin_overview in modules/comment/comment.admin.inc
Form builder; Builds the comment overview form for the admin.
dblog_overview in modules/dblog/dblog.admin.inc
Menu callback; displays a listing of log messages.
dblog_top in modules/dblog/dblog.admin.inc
Menu callback; generic function to display a page of the most frequent dblog events of a specified type.
forum_get_topics in modules/forum/forum.module
path_admin_overview in modules/path/path.admin.inc
Return a listing of all defined URL aliases. When filter key passed, perform a standard search on the given key, and return the list of matching URL aliases.

... See full list

File

includes/tablesort.inc, line 38
Functions to aid in the creation of sortable tables.

Code

function tablesort_sql($header, $before = '') {
  $ts = tablesort_init($header);
  if ($ts['sql']) {

    // Based on code from db_escape_table(), but this can also contain a dot.
    $field = preg_replace('/[^A-Za-z0-9_.]+/', '', $ts['sql']);

    // Sort order can only be ASC or DESC.
    $sort = drupal_strtoupper($ts['sort']);
    $sort = in_array($sort, array(
      'ASC',
      'DESC',
    )) ? $sort : '';
    return " ORDER BY {$before} {$field} {$sort}";
  }
}