Campo decimal o float non salva i decimali

Raccoglitore di domande e risposte relative a ScriptCase, il generatore di codice php per lo sviluppo rapido di applicazioni.
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Rispondi
Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Campo decimal o float non salva i decimali

Messaggio da Giovannino » 14 nov 2018, 17:47

Salve,
ho creato un nuovo semplicissimo form (Editable grid view) con banali campi tipo decimal x Prezzo decimal(10,2) e Sconto decimal(6,2) (mySQL) .
In inserimento e aggiornamento dati mi lascia scrivere normalmente sia il numero che i decimali . Cliccando su icone inserisci o aggiorna vedo ancora i valori corretti a video con virgola e decimali.
Per scrupolo vado a vedere il valore nelle colonne della tabella e mi ritrovo solo i numeri interi senza decimali.
Provato di tutto .... anche a variare i campi in float ma non si riescono a salvare i decimali.

Prezzo 3223,78 ----> db 3223,00
Sconto 65,32 ----> db 65,00

Ho perso già tutto il pomeriggio .... incredibile

Fabio
Messaggi: 449
Iscritto il: 20 feb 2014, 11:43

Re: Campo decimal o float non salva i decimali

Messaggio da Fabio » 20 nov 2018, 09:19

Di solito questi sono problemi di formattazione. Nel database la notazione standard per i decimali prevede il punto, non la virgola.
Nel campo bisogna quindi assicurarsi di aver definito correttamente il formato per il database (che può essere diverso da quello visualizzato).

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Campo decimal o float non salva i decimali

Messaggio da Giovannino » 20 nov 2018, 09:28

Si avevo controllato più volte .

L'unico modo per inserire i dati dopo la virgola è stato quello di aggiungere in onAfterInsert
$Sql_ins= "INSERT INTO requests_lines (request_id , item, quantity, price, discount) VALUES ({request_id} , {item}, {quantity}, {price}, {discount});";
sc_exec_sql($Sql_ins);
e in onAfterUpdate
$Sql_upd= "UPDATE `requests_lines` SET `item`='{item}',`quantity`= {quantity},`price`='{price}',`discount`= '{discount}' WHERE id_request_line_id = {id_request_line_id};";
sc_exec_sql($Sql_upd);

Ma mi sembra assolutamente anomalo.

rino
Messaggi: 660
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Campo decimal o float non salva i decimali

Messaggio da rino » 23 nov 2018, 14:31

C erto che è anomalo , hai sicurament eun problema di conversione che potrebbe anche essere nascosto se hai fatto delel variazioni sul disegno dei campi nel tempo. A me è accaduta la perdita di decimani dopo ave rfatto variaizoni sui dimensionament e per recuperare tutto sono passato dal definirlo testo per poi tornare a decimali.
Ci sono tanti modi per rovinare le dimensioni iniziali in php , visto che le dimensioni si modificano nel momento in cui si usa la variabile.
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Campo decimal o float non salva i decimali

Messaggio da Giovannino » 23 nov 2018, 16:12

Ciao Rino,
mi sa che è una cosa del genere.
Quando fai variazioni di tipo dato nel db, nel dictonary o dopo le sincronizzazioni... nascono , qualche volta, comportamenti incredibili.
Forzando con Insert funziona .. certo che non mi sembra tanto ortodosso.
Saluti

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti