Visualizzazione risultati 1 fino 13 di 13

Discussione: Mysql e ordine della tabella

  1. #1
    Guest

    Post Mysql e ordine della tabella

    Salve a tutti, da novellino quale sono voglio chiedere un consiglio a voi esperti. In un database mysql devo ordinare la tabella tramite un campo di tipo testo che contiene una data e un orario. Ho utilizzato la seguente stringa sql e me li ordina bene:
    "SELECT * FROM tabella ORDER BY `Data e Orario` ASC "
    Il problema č che per ora come nell'esempio sotto me li ordina bene ma non appena inserisco una data di un'altro mese me li ordina per giorni mentre io volevo ordinarli per giorni ma anche per mesi.Come faccio a risolvere il problema?
    Ordine sbagliato:
    01/07/05 12:00:00
    29/06/05 12:00:00
    30/06/05 12:00:00
    Ordine giusto:
    29/06/05 12:00:00
    30/06/05 12:00:00
    01/07/05 12:00:00

    Grazie per le risposte

  2. #2
    L'avatar di mythologia
    mythologia non č connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    potresti dividere la tabella `Data e Orario` in due tabelle: `Giorno e Orario` e `Mese e Anno` e poi fare un ORDER BY `Giorno e Orario`, `Mese e Anno` ASC "

  3. #3
    Guest

    Predefinito

    oppure senza sprecare un nuovo campo, potresti inserire le date nel db sottoforma di timestamp (ordinabile semplicemente) e treadurle in date in fase di output

    mavericck

  4. #4
    Guest

    Predefinito

    piuttosto che asc metti DESC ;)

    ciao!!
    giaco

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da mavericckweb
    oppure senza sprecare un nuovo campo, potresti inserire le date nel db sottoforma di timestamp (ordinabile semplicemente) e treadurle in date in fase di output

    mavericck
    e come si fą ? Scusate ma sono proprio un novellino e questo php non tanto lo capisco.
    Io comunque avevo pensato di creare un ulteriore campo da usare come indice con cifre a 4 numeri tipo 0001 0002 0003 solo che non so come fare a far incrementare di uno i campi da un modulo.
    Grazie a tutti per le risposte, siete molto gentili

  6. #6
    L'avatar di Evcz
    Evcz non č connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    usa il timestamp ;)

    per creare l'ora:

    time() oppure mktime()

    ed il formato INT da 10cifre ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  7. #7
    Guest

    Predefinito

    Scusate potreste spiegarmelo per bene perchč non ho capito. io uso il seguente codice per creare la data e l'ora e poi lo salvo nel db tramite la variabile $date. Il campo che uso per salvare la data č un semplice campo di testo, vą bene quello o lo devo cambiare con un'altro di altro tipo?
    <?
    $day = date("d",time());
    $month = date("m",time());
    $year = date("y",time());
    $ora=date("H",time());
    $minuto=date("i",time());
    $secondo=date("s",time());
    $date=("$day/$month/$year $ora:$minuto:$secondo");
    ?>
    Grazie

  8. #8
    L'avatar di Evcz
    Evcz non č connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    per la data puoi usare direttamente il formato unix anzichč quello umano:

    $date = time();

    a quel punto $date contiene un numero di 10cifre...

    ovviamente data maggiore = numero maggiore :)

    quando devi usare la data anzichč passare time() ogni volta basta che passi

    $day = date("d", $date);

    e ti trovi il giorno... e cosģ per tutto il resto :)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  9. #9
    Guest

    Predefinito

    Giusto per chiarezza nei confronti di crazychicken
    il timestamp rappresenta il numero di secondi trascorsi dal primo gennaio 1970,
    quindi un unico numero ordinabile senza commettere errori di alcun genere
    per estrarre da quel numero la data attuale usa le funzioni citate da evcz

    mavericck

  10. #10
    Guest

    Predefinito

    Grazie a tutti per l'aiuto che mi avete dato, adesso ci sono riuscito e penso che il timestamp sia il metodo migliore. Un'ultima cosa mi potete dire come fare a traformare una data in timestamp.
    Grazie 1000 !!! :grin:

  11. #11
    Guest

    Predefinito

    Guarda la funzione mktime()


    Ciaooooo!!!!!!

  12. #12
    Guest

    Predefinito

    e dove mi spiega come funziona?

  13. #13
    Guest

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •