How to sort query using PDO?

1

How can I sort my query from the most recent to the oldest date.

Is this my Query?

public function RetornaAtualizacoesFuncionarios($data,$codusuario){ 
    $WHERE = array() ;
    if( !empty( $codusuario    ) ) {$WHERE[] = "codusuario = $codusuario";};
    if( !empty( $data   ) ) {$WHERE[] = "DATE_FORMAT(data,'%Y-%m') = '$data'";};
    $WHERE[] = "tipregistro = 'mysql'";

try {

     $Query = "SELECT 
                    DISTINCT(funcionarios.usuario),
                    date_format(funcionarios.data,'%d/%m/%Y %H:%i:%s') as data ,
                    codigo,
                    nome 
                        FROM funcionarios
                                  "; 

    if( !empty($WHERE) )$Query .= ' WHERE '.implode(' AND  ', $WHERE );

    // echo "<pre>"; print_r($Query);

    include_once $_SESSION['pmodel'].'/mysqlconnection_class.php';
           $p_sql = MysqlConnection::getInstance()->prepare($Query);

            $_retorno = array(); 
            if($p_sql->execute()) {
                while ($_result = $p_sql->fetch(PDO::FETCH_ASSOC))  {
                    $_retorno[] = $_result; 
                }
            }
            return $_retorno;
        } catch (PDOException $e) {
            echo $e->getMessage();
        }
    }
}
    
asked by anonymous 05.10.2016 / 20:04

1 answer

1

Just add the ORDER BY clause to your complicit query with DESC :

$Query = "SELECT 
                DISTINCT(funcionarios.usuario),
                date_format(funcionarios.data,'%d/%m/%Y %H:%i:%s') as data ,
                codigo,
                nome 
                FROM funcionarios";

if( !empty($WHERE) )$Query .= ' WHERE '.implode(' AND  ', $WHERE );

$Query .= " ORDER BY funcionarios.data DESC"; 
    
05.10.2016 / 20:09