WordPress.org

Ready to get started?Download WordPress

Forums

Custom List Table Example
[resolved] treat data as number for order pusrpose (2 posts)

  1. chlustanec
    Member
    Posted 7 months ago #

    Hi,
    I have tables created with the help of this plugin/tutorial. However I cannot make them to treate numeric data as numeric data. So when I order the column with IDs, it is orderd like 1,10,11,12,2,3,4,5,6...

    data is pulled from database, ID is int. I even tried to add 0 during query, add 0 during feeding the table, tried +1-1 on both occasion as well, but those are still treated as string.

    Do anybody have any idea how to fix it? :) thanks

    http://wordpress.org/plugins/custom-list-table-example/

  2. chiflon
    Member
    Posted 7 months ago #

    it happens because the sorting it's based on arrays
    To sort on database data, you must to include in SQL query:

    private function table_data()
      {
        global $wpdb;
    
        // Set defaults
        $orderby = 'razon';
        $order = 'asc';
    
        // If orderby is set, use this as the sort column
        if(!empty($_GET['orderby']))
        {
            $orderby = $_GET['orderby'];
        }
    
        // If order is set use this as the order
        if(!empty($_GET['order']))
        {
            $order = $_GET['order'];
        }
        $sql = "SELECT * FROM ".DB_TABLE." ORDER BY ".$orderby." $order";
        $data = $wpdb->get_results($sql, ARRAY_A);
    
        return $data;
      }

    Replace line 363
    $data = $this->example_data;
    to
    $data = $this->table_data();

    Finnaly delete the usort_reorder() and usort functions.

Reply

You must log in to post.

About this Plugin

About this Topic