Zippo978 Inserito: 22 maggio 2023 Segnala Inserito: 22 maggio 2023 Salve a tutti, premetto che non sono un programmatore ma per piccole modifiche me la cavo, ho questa funzione if ($prezzo2 == '0') { $prezzo2 = ""; } else { $prezzo2 = "$prezzo2,00"; } e questa somma $totale = "$prezzo0"+"$prezzo1"+"$prezzo2"+"$prezzo3"+"$prezzo4"+"$prezzo5"+"$prezzo6"+"$prezzo7"+"$intprezzo8"; ma mi restituisce questo errore Tipi di operandi non supportati: int + string dato che nel db il campo non posso metterlo null e mi serve che nella pagina non venga visualizzato lo 0 come posso fare per non stamparelo nella pagina?
max.riservo Inserita: 22 maggio 2023 Segnala Inserita: 22 maggio 2023 Ovviamente NON puoi sommare numeri con stringhe mentre la possibilità che sul DB un campo numerico possa anche contenere il valore NULL è una scelta progettuale, eventualmente modificabile nel caso tu avessi accesso al DB come amministratore dello stesso. Quindi hai queste soluzioni : - quando il campo vale zero rimate tale (cioè zero). In fondo che problema hai nel sommare zero al totale ? - per ogni campo che non vuoi sommare quando è zero (che comunque non somma alcunché) esegui un test sul suo valore e se è zero non lo includi nella sommatoria. - i campi che visualizzi a video sono una copia dei campi che utilizzi nella sommatoria. In questo modo il campo visualizzato a video può essere trasformato in stringa (quindi puoi anche visualizzare una stringa nulla/vuota/di lunghezza zero) mentre nella sommatoria continui ad utilizzare il campo numerico (anche quando vale zero). Valuta di dotarti di un buon libro su PHP ...
Zippo978 Inserita: 22 maggio 2023 Autore Segnala Inserita: 22 maggio 2023 immamzi tutto grazie mille per a risposta, ma mi sa che mi sono espresso male io, non mi interessa se alla somma mette lo 0 o meno mi interessa che non compaia nella pagina web cioè da cosi a cosi quindi quell' $prezzo2 = "" si puo anche eliminare l' importante è che a video non si veda lo 0. Ho provato a mettere NULL la cella nel db ma non lo accetta.
Zippo978 Inserita: 22 maggio 2023 Autore Segnala Inserita: 22 maggio 2023 immamzi tutto grazie mille per a risposta, ma mi sa che mi sono espresso male io, non mi interessa se alla somma mette lo 0 o meno mi interessa che non compaia nella pagina web cioè da cosi a cosi quindi quell' $prezzo2 = "" si puo anche eliminare l' importante è che a video non si veda lo 0. Ho provato a mettere NULL la cella nel db ma non lo accetta. Dopo una giornata a sbatterci la testa ho risolto, in pratica ho messo il ciclo if la sommatoria, in questa maniera la somma se la fa tranquillamente e dopo prende i risultati e li stampa come dico io, era cosi semplice che non ci avevo pensato 😅 Grazie @max.riservo immamzi tutto grazie mille per a risposta, ma mi sa che mi sono espresso male io, non mi interessa se alla somma mette lo 0 o meno mi interessa che non compaia nella pagina web cioè da cosi a cosi quindi quell' $prezzo2 = "" si puo anche eliminare l' importante è che a video non si veda lo 0. Ho provato a mettere NULL la cella nel db ma non lo accetta. Dopo una giornata a sbatterci la testa ho risolto, in pratica ho messo il ciclo if dopo la sommatoria, in questa maniera la somma se la fa tranquillamente e dopo prende i risultati e li stampa come dico io, era cosi semplice che non ci avevo pensato 😅 Grazie @max.riservo
DavideDaSerra Inserita: 9 aprile 2024 Segnala Inserita: 9 aprile 2024 (modificato) Per la gioia di spiegare: if ($prezzo2 == '0') { $prezzo2 = ""; } else { $prezzo2 = "$prezzo2,00"; } L'errore è qui: $prezzo2="" metti una "stringa vuota" in un campo che poi sommi, l'operatore "+" vede da una parte un intero e dall'altra una stringa e non riesce a sommarli. Aggiungo che anzicè aggiungere ",00" a mano avrei usato la funzione number_format($number, 2, ',', '.'); //2 è il numero di devimali, ',' è il separatore decimali e il terzo è il separatore delle migliaia. number_format(1234.564,2,',','.'); ti produce 1.234,56 Modificato: 9 aprile 2024 da DavideDaSerra
Livio Orsini Inserita: 9 aprile 2024 Segnala Inserita: 9 aprile 2024 Dopo quasi un anno dovrebbe aver risolto il suo problema.😁
Messaggi consigliati