Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema ORDER BY date DESC

    Buongiorno a tutti!!!

    Ho una tabella del db in cui vi è un attibuto denominato date di tipo timestamp che come valore di default prende il CURRENT_TIMESTAMP.

    Quando eseguo la seguente query:

    Codice PHP:
    $query="SELECT id_video, title, DATE_FORMAT(date, '%d-%m-%Y') AS date, type FROM video, section WHERE video.id_section=section.id_section AND active='1' [b]ORDER BY date DESC[/b] LIMIT 0,5"
    i risultati vengono sì ordinati per data, ma per il giorno, non per la data complessiva...esempio:

    30-10-2008
    29-11-2009
    18-09-2005
    10-05-2006
    05-12-2009

    Capite anche voi che non va bene questo risultato, in quanto l' obiettivo è di ordinarli per anno, mese ed infine giorno, non prendendo in considerazione solo il giorno.

    Come mai succede questo?? Non saprei proprio che fare


    grazie per l'attenzione.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    Il fatto è la clausola order by date viene applicata al campo date DOPO che questo è stato formattato per le date italiane, mentre l'ordinamento per date in Mysql si basa sulle date inglesi.
    Per risolvere il problema, è sufficiente che dai un nome diverso al campo data in formato italiano nella query:
    Codice PHP:
    $query="SELECT id_video, title, date, DATE_FORMAT(date, '%d-%m-%Y') AS data_ita, type FROM video, section WHERE video.id_section=section.id_section AND active='1' ORDER BY date DESC LIMIT 0,5"
    Questo dovrebbe risolvere il problema

  3. #3
    giusto hai ragione...più chiaro di così!!!

    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.