prego...

dava zero perchè se metti intval() per un valore testuale, ti restituisce zero, intval() serve per avere il valore intero di una cifra generica.

Perchè in locale continui a farlo non saprei, ho sono valori gia memorizzati nel db, o altro che non saprei. Prova a svuotare il db in locale e riprova.