• User Newbie

    Php-mysql, problemi col tipo "decimal"

    Salve ragazzi, avrei un problemino con l'inserimento in un database di dati in un campo di tipo "decimal (9,2)".

    Nel campo vanno inseriti i prezzi di alcuni prodotti, per cui mi serve che memorizzi la cifra esatta fino alla seconda posizione decimale. Il fatto è che se inserisco i dati senza trattarli col php, nel database ritroco come valore 0,00; se invece uso la funzione

    $prezzo=str_ireplace(".", "", $prezzo);

    il valore viene inserito, ma le due cifre decimali vengono registrate sempre con valore .00

    in pratica mi si azzerano le cifre decimali.
    Se provo con FLOAT e altri tipi di variabili che non siano INT, il valore nel database viene registrato sempre come 0,00

    DOVE STO SBAGLIANDO? :bho:

    Ciao e grazie dell'aiuto

    PS: se provo a stampare a video la variabile $prezzo, il formato è corretto es. 1234,56
    ma registrata nel DB me la ritrovo 1234,00


  • User

    Se il formato che hai è con la virgola e su DB è con il punto devi fare:

    
    $prezzo=str_ireplace(",", ".", $prezzo);
    
    

  • User Newbie

    Grazie!

    Avevo già risolto, il mio problema era legato al fatto che l'input prevedeva anche il punto come separatore delle migliaia... adesso, avendo un valore $prezzo=1.234,56, prima effettuo un str_ireplace per eliminare il punto:

    $prezzo= str_ireplace( "." , "",$prezzo);

    e poi un altro per sostituire la virgola col punto:

    $prezzo= str_ireplace("," , ".", $prezzo);

    ed ottengo così $prezzo==1234.56

    Ancora grazie, comunque 😉