Salve,

in questo script (che visualizza una tabella all'interno di un CMS) i dati vengono presentati in ordine alfabetico, io invece vorrei che si visualizzassero nell'ordine di inserimento in amministrazione. COme fare?

Codice PHP:
<?php

/*
* Table Manager (GeDa) - Mambo/Joomla component
* Copyright (C) 2005 by IW1QLH
* License [url]http://www.gnu.org/copyleft/gpl.html[/url] GNU/GPL
* Official website: [url]http://www.iw1qlh.net/projects/table-manager[/url]
*/

// ensure this file is being included by a parent file
defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

function 
Geda_get_data($id_table$sort_col$limit, &$limitstart, &$total) {
    global 
$database;

    
// get the total number of records
    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_id_row');
    
$database->query();
    
$database->setQuery("CREATE TEMPORARY TABLE #__geda_tmp_id_row (`id_row` int(11) NOT NULL)");
    
$database->query();
    
$database->setQuery("INSERT INTO #__geda_tmp_id_row SELECT DISTINCT td_row FROM #__geda_data where id_table = $id_table");
    
$database->query();
    
$database->setQuery('SELECT COUNT(*) AS c FROM #__geda_tmp_id_row');
    
$total $database->loadResult();

    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_value');
    
$database->query();
    
$database->setQuery("CREATE TEMPORARY TABLE #__geda_tmp_value (`id_row` int(11) NOT NULL,   `td_numeric` float, `td_char` varchar(255), `td_date` datetime)");
    
$database->query();
    
$database->setQuery("INSERT INTO #__geda_tmp_value SELECT td_row, td_numeric, td_char, td_date FROM #__geda_data where id_table = $id_table and id_column = " abs($sort_col));
    
$database->query();

    
$database->setQuery("SELECT cn_type FROM #__geda_columns WHERE id_table = $id_table AND id = " abs($sort_col));
    
$cn_type $database->loadResult();
    switch (
$cn_type) {
        case 
'C':
            
$field 'td_char';
            break;
        case 
'N':
            
$field 'td_numeric';
            break;
        case 
'D':
            
$field 'td_date';
            break;
        default:
            
$field 'td_numeric, td_char, td_date';
    }

    if ( 
$total <= $limit $limitstart 0;

    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_id_sort');
    
$database->query();
    
$database->setQuery("CREATE TEMPORARY TABLE #__geda_tmp_id_sort (`ordering` int(11) NOT NULL auto_increment, `id_row` int(11) NOT NULL, PRIMARY KEY  (`ordering`))");
    
$database->query();
    
$database->setQuery("INSERT INTO #__geda_tmp_id_sort SELECT 0, a.id_row FROM #__geda_tmp_id_row AS a LEFT JOIN #__geda_tmp_value AS b ON b.id_row = a.id_row ORDER BY $field " . (($sort_col 0) ? 'DESC' 'ASC') . " LIMIT $limitstart$limit");
    
$database->query();

    
$database->setQuery("SELECT b.td_row, b.id_column, b.td_char, b.td_numeric, UNIX_TIMESTAMP(b.td_date) AS td_date, c.cn_type FROM #__geda_tmp_id_sort AS a, #__geda_data AS b, #__geda_columns AS c WHERE b.td_row = a.id_row AND b.id_column = c.id AND b.id_table = $id_table AND c.id_table = $id_table ORDER BY a.ordering, id_column");
    
$datas $database->loadObjectList();

    
$rowid = -1;
    
$rows = array();

    foreach (
$datas as $data) {

        if (
$rowid != $data->td_row) {
            
$rowid $data->td_row;
            if (
$row) {
                
$rows[] = $row;
            }
            
$row = array();
            
$row['rowid'] = $rowid;
        }
        
$value '-';
        switch (
$data->cn_type) {
            case 
'C':
                
$value $data->td_char;
                break;
            case 
'N':
                
$value $data->td_numeric;
                break;
            case 
'D':
                
$value $data->td_date;
                break;
        }
        
$row[$data->id_column] = $value;
    }
    if (
$row)
        
$rows[] = $row;

    
// drop temporary tables
    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_id_row');
    
$database->query();
    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_value');
    
$database->query();
    
$database->setQuery('DROP TABLE IF EXISTS #__geda_tmp_id_sort');
    
$database->query();

    return 
$rows;
}

function 
Geda_view($table) {
    global 
$database$mosConfig_list_limit;

    if (!
$table)
        return 
'<font color="#FF0000">Table manager error: you must insert table=[i]tablename[/i] in the parameters !</font>
'
;

    
session_start();

    if (
$sort_col mosGetParam$_REQUEST$table 'order')) {
        
$_SESSION[$table 'order'] = $sort_col;
    } else {
        
$sort_col $_SESSION[$table 'order'];
    }

    
// get the table name
    
$database->setQuery"SELECT id, tn_description FROM #__geda_tables where tn_name = '$table'" );
    if (!
$tableData $database->loadRow())
        return 
"<font color='#FF0000'>Table-manager error: $table isn't a valid table name !</font>
"
;
    
$id_table $tableData[0];
    
$tablename $tableData[1];

    
// get the columns name
    
$database->setQuery"SELECT id, cn_description, cn_type, cn_format, published FROM #__geda_columns where id_table = $id_table ORDER BY ordering" );
    
$columns $database->loadObjectList();

    if ((!
$sort_col) && ($columns[0]->id))
        
$sort_col $columns[0]->id;

    
$limit         intvalmosGetParam$_REQUEST'limit''' ) );
    
$limitstart intvalmosGetParam$_REQUEST'limitstart') );
    
$limit $limit $limit $mosConfig_list_limit ;
    
$total 0;

    
// get datas
    
$rows Geda_get_data($id_table$sort_col$limit$limitstart$total);
    
    
mosCache::cleanCache();

    require_once( 
$GLOBALS['mosConfig_absolute_path'] . '/includes/pageNavigation.php' );
    
$pageNav = new mosPageNav$total$limitstart$limit );

    return 
HTML_Geda_view::show($rows$pageNav$table$tablename$columns$sort_col);

}

class 
HTML_Geda_view {

    function 
show($rows$pageNav$table$tablename$columns$sort_col) {

        
$html  "\n";
        
$html .= "\n\n\n";
        
$html .= "\n<form method='POST' name='" $table "Form'>";
        
$html .= "\n<input type='hidden' name='" $table "order' value=$sort_col>";
        
$html .= '<table width="100%" cellpadding="3" cellspacing="5" border="0" align="center">';
        
$html .= "\n<tr>";
        
$html .= "<td colspan=" count($columns) . ' class="componentheading"></td>';
        
$html .= '</tr>';

        
$html .= "\n<tr>";
        foreach (
$columns as $col) {
            
$html .= '<td class="sectiontableheader">[b]' . (($col->id == abs($sort_col)) ? '[b]' '') . $col->cn_description . (($col->id == abs($sort_col)) ? '' '[/b]') . '[/b]';
            
//$html .= '[url="' . $url . '&gedaorder=' . $col->id . '"]»[/url]</td>';
            
$html .= '[url="javascript:document.' $table 'Form.' $table 'order.value=' . (($col->id == abs($sort_col)) ? -$sort_col $col->id) . ';document.' $table 'Form.submit();"]»[/url]</td>';

        }
        
$html .= '</tr>';

        
$k 0;
        foreach (
$rows as $row) {
            
$html .= "\n<tr class='sectiontableentry" . (($k 2) + 1) ."'>";
            foreach (
$columns as $col) {
                
$align 'left';
                
$value $row[$col->id];
                
$format $col->cn_format;
                  switch (
$col->cn_type) {
                     case 
'C':
                        
$align 'left';
                        if (
$value) {
                            switch (
$format) {
                                case 
'A':       // ANCHOR
                                    
$value '[url="' $value '"]' $value '[/url]';
                                    break;
                                case 
'M':       // MAILTO
                                    
$value '[email="' $value '"]' $value '[/email]';
                                    break;
                                case 
'IMG':       // IMAGE
                                    
$value '[img]' $value '[/img]';
                                    break;
                                case 
'L':       // LOWER
                                    
$value strtolower($value);
                                    break;
                                case 
'U':       // UPPER
                                    
$value strtoupper($value);
                                    break;
                            }
                        }
                        break;
                    case 
'N':
                        
$align 'right';
                        if (
$value && $format) {
                            
$params explode("/"$format);
                            if (!
$params[1]) $params[1] = '.';
                            if (!
$params[2]) $params[2] = ',';
                            
$value number_format($value$params[0], $params[1], $params[2]);
                        }
                        break;
                    case 
'D':
                        
$align 'left';
                        if (
$value$value date(!$format 'Y-m-d H:i:s' $format$value);
                        break;
                   }
                   
$value $value $value '';
                   
$html .= "<td align='$align'>$value</td>";
            }
            
$html .= '</tr>';
            
$k++;
        }

        
// [url]http://www.domain.com/[/url]$option/$task/$sectionid/$id/$Itemid/$limit/$limitstart

        
$link "index.php?"
        
"option=" mosGetParam($_REQUEST'option''' ) . "&amp;";
        if (
$_REQUEST['task'])
            
$link .= "task="   mosGetParam($_REQUEST'task') . "&amp;";
        if (
$_REQUEST['sectionid'])
            
$link .= "sectionid=" mosGetParam($_REQUEST'sectionid') . "&amp;";
        if (
$_REQUEST['id'])
            
$link .= "id=" mosGetParam($_REQUEST'id') . "&amp;";
        
$link .= "Itemid=" mosGetParam($_REQUEST'Itemid''' );

        
$html .= '<tr>';
        
$html .= '<td colspan=' count($columns) . '"></td>';
        
$html .= '</tr>';
        
$html .= '<tr>';
        
//$html .= '<td align="center" colspan=' . count($columns) . ' class="sectiontablefooter">' . $pageNav->writePagesLinks($link) . '</th>';
        
$html .= '</tr>';
        
$html .= '<tr>';
    
//    $html .= '<td align="center" colspan=' . count($columns) .'>' . _PN_DISPLAY_NR . '' . $pageNav->getLimitBox($link) . $pageNav->writePagesCounter() . '</td>';
        
$html .= '</tr>';
        
$html .= '</table>';
        
$html .= '</form>';
        
$html .= "\n";

        return 
$html;

    }
}
?>