Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302

    Lettura data in italiano

    Ciao raga,
    non riesco a recuperare un campo data dal database in formato italiano, pensavo fosse una cosa banale, ma mi sono praticamente arenato.

    La query che uso per l'inserimento dei campi nel db, funziona benissimo e la data inserita in formato italiano, viene memorizzata nel db in formato americano...

    questa la query di insert :

    codice:
    $sql ="INSERT INTO `Commesse` (`veicolo`,`targa`,`km`,`telaio`,`cliente`,`indirizzo`,`piva`,`tel`,`itr1`,`itr2`,`itr3`,`itr4`,`itr5`,`itr6`,`itr7`,`itr8`,`itr9`,`itr10`,`itr11`,`itr12`,`itr13`,`itr14`,`itr15`,`for1`,`for2`,`for3`,`for4`,`for5`,`for6`,`for7`,`for8`,`for9`,`for10`,`for11`,`for12`,`for13`,`for14`,`for15`,`imp_1`,`imp_2`,`imp_3`,`imp_4`,`imp_5`,`imp_6`,`imp_7`,`imp_8`,`imp_9`,`imp_10`,`imp_11`,`imp_12`,`imp_13`,`imp_14`,`imp_15`,`totale`,`n_tecnico`,`data`)VALUES 
    (UPPER('$veicolo'),UPPER('$targa'),'$km',UPPER('$telaio'),UPPER('$cliente'),UPPER('$indirizzo'),'$piva','$tel',UPPER('$itr1'),UPPER('$itr2'),UPPER('$itr3'),UPPER('$itr4'),UPPER('$itr5'),UPPER('$itr6'),UPPER('$itr7'),UPPER('$itr8'),UPPER('$itr9'),UPPER('$itr10'),UPPER('$itr11'),UPPER('$itr12'),UPPER('$itr13'),UPPER('$itr14'),UPPER('$itr15'),UPPER('$for1'),UPPER('$for2'),UPPER('$for3'),UPPER('$for4'),UPPER('$for5'),UPPER('$for6'),UPPER('$for7'),UPPER('$for8'),UPPER('$for9'),UPPER('$for10'),UPPER('$for11'),UPPER('$for12'),UPPER('$for13'),UPPER('$for14'),UPPER('$for15'),$imp_1, $imp_2, $imp_3, $imp_4, $imp_5, $imp_6, $imp_7, $imp_8, $imp_9, $imp_10, $imp_11, $imp_12, $imp_13, $imp_14, $imp_15, $totale,UPPER('$n_tecnico'),STR_TO_DATE('$data', '%d/%m/%Y'))";
    


    il problema nasce con la query di update, in effetti quando, tramite una pagina modifica.php riprendo i dati presenti nel database, il campo data viene valorizzato con la data letta nel formato americano,

    quando effettuo l'update la data nel database me la ritrovo 0000-00-00



    ecco la query di update


    codice:
    $sql ="UPDATE Commesse SET veicolo = UPPER ('$veicolo'), targa = UPPER ('$targa'), km = UPPER ('$km'), telaio = UPPER ('$telaio'), cliente = UPPER ('$cliente'), indirizzo = UPPER ('$indirizzo'), piva = ('$piva'), tel = ('$tel'), itr1 = UPPER ('$itr1'), itr2 = UPPER ('$itr2'), itr3 = UPPER ('$itr3'), itr4 = UPPER ('$itr4'), itr5 = UPPER ('$itr5'), itr6 = UPPER ('$itr6'), itr7 = UPPER ('$itr7'), itr8 = UPPER ('$itr8'), itr9 = UPPER ('$itr9'), itr10 = UPPER ('$itr10'), itr11 = UPPER ('$itr11'), itr12 = UPPER ('$itr12'), itr13 = UPPER ('$itr13'), itr14 = UPPER ('$itr14'), itr15 = UPPER ('$itr15'), for1 = UPPER ('$for1'), for2 = UPPER ('$for2'), for3 = UPPER ('$for3'), for4 = UPPER ('$for4'), for5 = UPPER ('$for5'), for6 = UPPER ('$for6'), for7 = UPPER ('$for7'), for8 = UPPER ('$for8'), for9 = UPPER ('$for9'), for10 = UPPER ('$for10'), for11 = UPPER ('$for11'), for12 = UPPER ('$for12'), for13 = UPPER ('$for13'), for14 = UPPER ('$for14'), for15 = UPPER ('$for15'), imp_1 = $imp_1, imp_2 = $imp_2, imp_3 = $imp_3, imp_4 = $imp_4, imp_5 = $imp_5, imp_6 = $imp_6, imp_7 = $imp_7, imp_8 = $imp_8, imp_9 = $imp_9, imp_10 = $imp_10, imp_11 = $imp_11, imp_12 = $imp_12, imp_13 = $imp_13, imp_14 = $imp_14, imp_15 = $imp_15, totale = $totale, n_tecnico = UPPER ('$n_tecnico'), data = STR_TO_DATE('$data', '%d/%m/%Y') WHERE id = '".$_SESSION['id']."'";
    codice:
    
    


    Mi dareste una mano ?
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    prova qualcosa del genere

    SET data = CAST('2014-05-25' AS DATETIME)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    prova qualcosa del genere

    SET data = CAST('2014-05-25' AS DATETIME)
    Ciao, grazie per la risposta,
    ho modificato la query in questo modo

    codice:
    $sql = "UPDATE Commesse SET veicolo = UPPER ('$veicolo'), targa = UPPER ('$targa'), km = UPPER ('$km'), telaio = UPPER ('$telaio'), cliente = UPPER ('$cliente'), indirizzo = UPPER ('$indirizzo'), piva = ('$piva'), tel = ('$tel'), itr1 = UPPER ('$itr1'), itr2 = UPPER ('$itr2'), itr3 = UPPER ('$itr3'), itr4 = UPPER ('$itr4'), itr5 = UPPER ('$itr5'), itr6 = UPPER ('$itr6'), itr7 = UPPER ('$itr7'), itr8 = UPPER ('$itr8'), itr9 = UPPER ('$itr9'), itr10 = UPPER ('$itr10'), itr11 = UPPER ('$itr11'), itr12 = UPPER ('$itr12'), itr13 = UPPER ('$itr13'), itr14 = UPPER ('$itr14'), itr15 = UPPER ('$itr15'), for1 = UPPER ('$for1'), for2 = UPPER ('$for2'), for3 = UPPER ('$for3'), for4 = UPPER ('$for4'), for5 = UPPER ('$for5'), for6 = UPPER ('$for6'), for7 = UPPER ('$for7'), for8 = UPPER ('$for8'), for9 = UPPER ('$for9'), for10 = UPPER ('$for10'), for11 = UPPER ('$for11'), for12 = UPPER ('$for12'), for13 = UPPER ('$for13'), for14 = UPPER ('$for14'), for15 = UPPER ('$for15'), imp_1 = $imp_1, imp_2 = $imp_2, imp_3 = $imp_3, imp_4 = $imp_4, imp_5 = $imp_5, imp_6 = $imp_6, imp_7 = $imp_7, imp_8 = $imp_8, imp_9 = $imp_9, imp_10 = $imp_10, imp_11 = $imp_11, imp_12 = $imp_12, imp_13 = $imp_13, imp_14 = $imp_14, imp_15 = $imp_15, totale = $totale, n_tecnico = UPPER ('$n_tecnico'), data = CAST('$data' AS DATETIME) WHERE id = '".$_SESSION['id']."'";
    adesso il problema è un altro, il campo data viene recuperato nel formato 2014/05/25 e non come vorrei io nel formato italiano. Ora, finchè non modifico la data, tutto ok, ma se modifico anche la data, inserendola nel formato italiano, mi restituisce un valore NULL ...
    Ultima modifica di condor_uk; 25-05-2014 a 19:41
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    che db è?

    $data cosa è?

    data = CAST('$data' AS DATETIME)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    oppure prova cosi:

    set data = STR_TO_DATE('$data', '%Y/%m/%d')

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    oppure prova cosi:

    set data = STR_TO_DATE('$data', '%Y/%m/%d')
    adesso il problema è un altro, il campo data viene recuperato nel formato 2014/05/25 e non come vorrei io nel formato italiano. Ora, finchè non modifico la data, tutto ok, ma se modifico anche la data, inserendola nel formato italiano, mi restituisce un valore NULL ...
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    che db è?

    $data cosa è?

    data = CAST('$data' AS DATETIME)

    ???

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da 123delphi321 Visualizza il messaggio
    ???
    E' un db mysql,
    data è un campo di tipo date...

    se uso data = STR_TO_DATE('$data', '%Y/%m/%d')
    la data viene inserita così : 0000-00-00
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    set data = STR_TO_DATE($data, '%d/%m/%Y')

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Non riesco a risolvere...
    In effetti l'insert viene effettuato correttamente ad esempio inserisco la data in un form 27/05/2014 e viene memorizzata nel database nel formato 2014-05-27

    questa la query di insert

    codice:
    $sql = "INSERT INTO `miatabella`(`data`)
    VALUES
    STR_TO_DATE('$data', '%d/%m/%Y'))";
    Quando la richiamo con il file update.php la legge 2014/05/27, vorrei poterla leggere nel formato italiano 27/05/2014.

    Leggendola 2014/05/27 quando eseguo la query di update ossia questa

    codice:
    $sql = "UPDATE miatabella SET veicolo = data = STR_TO_DATE('$data','%d/%m/%Y') WHERE id = '".$_SESSION['id']."'";
    viene memorizzata nel db cosi 0000-00-00
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

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.