Pues por lo que se entiende del código jamás estás acumulando los totales en ningún array, por lo tanto array_sum() no tiene sentido.
Lo que haces en la siguiente linea está mal:
Dado eso $total jamás será un array.
Debes crear un array auxiliar antes del while(), y entonces con array_push() agregar valores a dicho array.
Sólo así puede que te funcione array_sum(), de la forma en que lo haces es imposible.