Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: date e mysql

  1. #1

    date e mysql

    Perchè, inesrendo correttamente le date da un form e processandole con un mktime() mi restituisce sempre 00-00-0000?

  2. #2
    da una pagina mi arrivano le varibili $mese, $giorno, $anno
    le gestisco con mktime(0,0,0,$mese,$giorno,$anno) per inserirle in un db
    eppure quando eseguo una query di lettura sul db, mi restituisce 00-00-0000
    come mai?

  3. #3
    mktime() ritorna un timestamp unix. Se il tipo di dati nel database è TIMESTAMP non c'è problema, se invece è DATE o DATETIME dovresti usare uno di questi metodi:
    [list=1][*]Convertire in PHP la data in modo che sia compatibile con DATE o DATETIME, tipo una stringa nel formato 'YYYYMMDDHHSS' (e quindi potresti evitare l'uso di mktime())[*]Usare FROM_UNIXTIME(...) nella query SQL, tipo INSERT INTO ... (...) VALUES (..., FROM_UNIXTIME($timestamp), ...)[/list=1]

  4. #4
    Originariamente inviato da ntd
    [list=1][*]Convertire in PHP la data in modo che sia compatibile con DATE o DATETIME, tipo una stringa nel formato 'YYYYMMDDHHSS' (e quindi potresti evitare l'uso di mktime())[/list=1]
    ok, io ho DATE nel db, allora cosa devo fare, unire le tre variabili e aggiugere 0000 alla fine?
    Grazie

  5. #5
    Originariamente inviato da Roverandom
    ok, io ho DATE nel db, allora cosa devo fare, unire le tre variabili e aggiugere 0000 alla fine?
    Grazie
    Quasi. DATE è 'YYYYMMDD' (non ha l'ora), quindi ti basta unire le variabili SENZA aggiungere 0000 alla fine. Occhio a rispettare il formato e a mettere gli zeri dove occorrono: 20071001 = 1 ottobre 2007 mentre 2007101 è una cagata. Se vuoi semplificare:
    Codice PHP:
    $valore_per_query "$anno-$mese-$giorno"
    così non ti devi preoccupare di mettere lo 0 al mese e al giorno se sono 1 cifra (non l'ho provato ma "dovrebbe" funzionare).

  6. #6
    veramente così non funziona, non è che forse interpreta i "-" come dei meno?
    Forse basta mettere un punto tra le variabili?

  7. #7
    Originariamente inviato da Roverandom
    veramente così non funziona, non è che forse interpreta i "-" come dei meno?
    Forse basta mettere un punto tra le variabili?
    Guarda che devi metterlo fra apici nella query:

    codice:
    INSERT INTO ... (...) VALUES (..., '$valore_per_query', ...)
    altrimenti sì, ti esegue la sottrazione tra interi.

  8. #8
    ho risolto con una soluzione intermedia:
    -ho messo i punti
    -ho messo gli apici

    cmq il problema era a monte, il giorno fino al nove mi arrivava senza lo zero davanti, ho risolto correggendo a monte e adesso mi funziona divinamente!
    Grazie mille!

  9. #9
    Originariamente inviato da Roverandom
    cmq il problema era a monte, il giorno fino al nove mi arrivava senza lo zero davanti, ho risolto correggendo a monte e adesso mi funziona divinamente!
    Grazie mille!
    Se il problema era questo ti conviene fare lo stesso per il mese, altrimenti a gennaio sarai di nuovo in braghe di tela.

  10. #10
    ovvio, ho corretto anche il mese!
    Però il problema del giorno era diverso, perchè l'elenco veniva generato dal php, mentre il mese era html, quindi molto pù semplice da fissare

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.