Zippo978 Inserito: 22 maggio 2023 Segnala Share 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? Link al commento Condividi su altri siti More sharing options...
max.riservo Inserita: 22 maggio 2023 Segnala Share 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 ... Link al commento Condividi su altri siti More sharing options...
Zippo978 Inserita: 22 maggio 2023 Autore Segnala Share 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. Link al commento Condividi su altri siti More sharing options...
Zippo978 Inserita: 22 maggio 2023 Autore Segnala Share 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 Link al commento Condividi su altri siti More sharing options...
DavideDaSerra Inserita: 9 aprile Segnala Share Inserita: 9 aprile (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 da DavideDaSerra Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 9 aprile Segnala Share Inserita: 9 aprile Dopo quasi un anno dovrebbe aver risolto il suo problema.😁 Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati