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

    Valori di date e booleani in PHP/MySQL

    Salve. Ho bisogno di creare una colonna di tipo booleano in MySQL, come faccio? Cioè va bene la dichiarazione BOOL?

    Oltre a questo avrei il bisogno di salvare una data (giorno/mese/anno - ore:minuti:secondi), e ho visto un pò sul web che ci sono vari tipi di colonna, ma qual è quello di cui ho bisogno? E poi, come faccio ad inserire una data del genere dal php e a leggere questa data dal database e mostrarla col php in una pagina?

    Mi piacerebbe vedere direttamente degli esempi pratici, grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Per il valore booleano usa un tinyint(1), per la data un campo di tipo datetime. Se devi passare data e ora corrente puoi usare direttamente la funzione now() di mysql. In caso contrario passi data e ora che vuoi tramite form e concateni i campi con il punto. Nella concatenazione devi fare in modo che la data sia nel formato aaaa-mm-gg hh:mm:ss.

  3. #3
    Originariamente inviato da nicola75ss
    Per il valore booleano usa un tinyint(1), per la data un campo di tipo datetime. Se devi passare data e ora corrente puoi usare direttamente la funzione now() di mysql. In caso contrario passi data e ora che vuoi tramite form e concateni i campi con il punto. Nella concatenazione devi fare in modo che la data sia nel formato aaaa-mm-gg hh:mm:ss.
    Quindi dovrei utilizzare i valori 0 e 1 per simulare i true e i false?

    Ora provo, grazie

  4. #4
    Dimenticavo, è possibile rendere un DATETIME una primary key e poi ordinare in ordine crescente in una SELECT in base appunto a questo tipo di campo?

  5. #5
    Mi è sorto un dubbio: come faccio a leggere un valore DATETIME e a stampare ad esempio solo l'anno? E se volessi stampare prima l'ora e poi la data?

  6. #6
    Originariamente inviato da Dreamer89
    Dimenticavo, è possibile rendere un DATETIME una primary key e poi ordinare in ordine crescente in una SELECT in base appunto a questo tipo di campo?
    meglio di no.

    Nel caso tu faccia inserimenti multipli la data ora viene letta una sola volta e darebbe errore di valore duplicato. Associa un indice al campo. Per l'ordinamento usa ORDER BY campo [ASC | DESC]

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da Dreamer89
    Mi è sorto un dubbio: come faccio a leggere un valore DATETIME e a stampare ad esempio solo l'anno? E se volessi stampare prima l'ora e poi la data?
    con date_format() estrai i valori che vuoi con l'ordine che ti pare.

    http://dev.mysql.com/doc/refman/5.0/...on_date-format

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Originariamente inviato da piero.mac
    con date_format() estrai i valori che vuoi con l'ordine che ti pare.

    http://dev.mysql.com/doc/refman/5.0/...on_date-format
    E se volessi lavorare in PHP? Esiste qualche funzione che mi trasformi una data di quel formato in secondi (unix time)?

  9. #9
    Ok ho risolto con questa funzioncina:

    Codice PHP:
        public static function getMySQLTimestamp ($datetime)
        {
            
    $val explode(" ",$datetime);
            
    $date explode("-",$val[0]);
            
    $time explode(":",$val[1]);

            return 
    mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);
        } 

  10. #10
    Oppure usi date() e strtotime()

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 © 2025 vBulletin Solutions, Inc. All rights reserved.