Cuando usas fetch_all(MYSQLI_ASSOC) obtienes un array con los nombres de campo como índices, pero con fetch_array() los índices son la posición de cada campo en la tabla, más o menos algo como:
Código:
Campo Assoc Array
------------------- ---------------- --------------------
id id 0
nombre nombre 1
caratula caratula 2
otro_campo otro_campo 3
etc etc 4
No veo la necesidad o conveniencia de cambiar la forma de leer la consulta, pero, si lo haces, entonces cambia también la forma de acceder a los campos.