php – Mejorar codigo sistema simple

Hola buenas soy Ethanf estudiante inicial de programación, quisiera que me ayudarán a mejorar un código que se que hay cosas en el que no se deben hacer (como mencioné soy nuevo en esto de la programación y me a interesado este mundo y quisiera mejorar mi lógica en computación) y cosas que se pueden mejorar..
Recientemente estoy haciendo un pequeño programa (xampp, php, MySql) para ayudar a mi comunidad a presupuestar sus ingresos y egresos, el problema reside en que en mi país se maneja algo que se llama un clasificador presupuestario y este cumple con reglas que hay que seguir para ordenar dichos Ingresos y Egresos, intentaré explicar este lo más resumido posible.
El clasificador en los ingresos y egresos tiene lo que es el
Tipo, ramo, subramo, específico, subespecifico
Este se maneja por una regla de numeros:
3 ingresos
4 egresos

Tipo:3 ramo:00 subramo:00 Espe:00 subesp:00

3.00.00.00.00
A esto se les llama partida o cuenta presupuestaría
Imagen del clasificador:
clasf

Esto es igual para los egresos
La idea es ordenar estos datos de esta forma

Lo que hace mi codigo es ordenar y agregarle un monto en dinero (100.000,00 con dos decimales) como piden en mi país el cálculo de esto, si se ingresa un ejemplo: 3.01.01.01.01
Este debe ordenar sus hermanas anteriores siguiendo un orden como ven en la imagen
Así se ve en mi sistema
sist

Use datatable, bootstrap y jquery reflejar el orden (con la ayuda de unos tutoriales que vi)
En base de datos la tabla:
(Todos son campos de texto con exención del id que tiene un Auto Incremento)
Y lo paso por AJAX
El código que hice es este

<?php 



$errors = array();
$respuesta = new stdClass();

header('Content-type: application/json');


include_once("../../core/core.php");

if($_POST){
if (isset($_POST('cta')) && $_POST('cta') != "" && 
    isset($_POST('monto')) && $_POST('monto') != "" ) {

$data=mysqli_real_escape_string($connect,$_POST('cta'));

$data=explode('.', $data);



//----------Rectf
    $padre=$data('0');//1

    $ramo=$data('1');//2

    $subram=$data('2');//3

    $esp=$data('3');//4

    $subesp=$data('4');//5

    $numord="000";//6


    //7
    //$nomcta=$medio(1);//7

    $moncta=mysqli_real_escape_string($connect,$_POST('monto'));

    $is_moving="No es de Movimiento";
$sql_princ="SELECT * FROM formpresu_tb_ingreso WHERE padre = '$padre' AND ramo ='$ramo' AND subram= '$subram' AND esp= '$esp' AND subesp= '$subesp'";
$res_princ = $connect->query($sql_princ);
$principal = $res_princ->fetch_assoc();


//----------e n d


for ($i=0; $i < 4; $i++) { 
    if ($i==0) {
    //----------------------------------------------------


        $q_veri="SELECT * FROM formpresu_tb_ingreso WHERE padre = '$padre' AND ramo = '$ramo' AND subram = '00' AND esp='00' AND subesp='00'";
        $result_veri = $connect->query($q_veri);
        

        if($result_veri->num_rows < 1){
        $sql_cero="SELECT * FROM formpresu_tb_clasifingre WHERE partida = '".$padre.'.'.$ramo.'.00.00.00'."'";
        $result_cero = $connect->query($sql_cero);
        $row_ramo = $result_cero->fetch_assoc();

        
        
        $query_i_cero = "
            INSERT INTO formpresu_tb_ingreso(padre,ramo,subram,esp,subesp,nomcta,moncta,is_mov) VALUES ('$padre','$ramo','00','00','00','".$row_ramo('cuenta')."','-','".$row_ramo('is_movi')."');

         ";
        $res_icero = mysqli_query($connect, $query_i_cero) or die($respuesta->titulo = mysqli_error($connect));
        }else{


        
        }
    //----------------------------------------------------
    }elseif ($i==1) {
    $q_veri_dos="SELECT * FROM formpresu_tb_ingreso WHERE padre = '$padre' AND ramo = '$ramo' AND subram = '$subram' AND esp='00' AND subesp='00'";
    $result_veri_dos = $connect->query($q_veri_dos);
        

    if($result_veri_dos->num_rows < 1){
    //----------------------------------------------------
        $sql_uno="SELECT * FROM formpresu_tb_clasifingre WHERE partida = '".$padre.'.'.$ramo.'.'.$subram.'.00.00'."'";
        $result_uno = $connect->query($sql_uno);
        $row_subram = $result_uno->fetch_assoc();
        
        $query_i_uno = "INSERT INTO formpresu_tb_ingreso(padre,ramo,subram,esp,subesp,nomcta,moncta,is_mov) VALUES ('$padre','$ramo','$subram','00','00','".$row_subram('cuenta')."','-','".$row_subram('is_movi')."') ";
        $res_iuno = mysqli_query($connect, $query_i_uno) or die($respuesta->titulo = mysqli_error($connect));
    }
    //----------------------------------------------------
    }elseif ($i==2) {
    $q_veri_tres="SELECT * FROM formpresu_tb_ingreso WHERE padre = '$padre' AND ramo = '$ramo' AND subram = '$subram' AND esp='$esp' AND subesp='00'";
        $result_veri_tres = $connect->query($q_veri_tres);
        

    if($result_veri_tres->num_rows < 1){
    //----------------------------------------------------
        $sql_dos="SELECT * FROM formpresu_tb_clasifingre WHERE partida = '".$padre.'.'.$ramo.'.'.$subram.'.'.$esp.'.00'."'";
        $result_dos = $connect->query($sql_dos);
        $row_esp = $result_dos->fetch_assoc();
        
        $query_i_dos = "INSERT INTO formpresu_tb_ingreso(padre,ramo,subram,esp,subesp,nomcta,moncta,is_mov) VALUES ('$padre','$ramo','$subram','$esp','00','".$row_esp('cuenta')."','-','".$row_esp('is_movi')."') ";
        $res_idos = mysqli_query($connect, $query_i_dos) or die($respuesta->titulo = mysqli_error($connect));
    }
    //----------------------------------------------------
    }elseif ($i==3) {
    $q_veri_cuatro="SELECT * FROM formpresu_tb_ingreso WHERE padre = '$padre' AND  ramo = '$ramo' AND  subram = '$subram' AND  esp='$esp' AND subesp='$subesp'";
    $result_veri_cuatro = $connect->query($q_veri_cuatro);
        

    if($result_veri_cuatro->num_rows < 1){
    //----------------------------------------------------
        $sql_tres="SELECT * FROM formpresu_tb_clasifingre WHERE partida = '".$padre.'.'.$ramo.'.'.$subram.'.'.$esp.'.'.$subesp."'";
        $result_tres = $connect->query($sql_tres);
        $row_subesp = $result_tres->fetch_assoc();
        
        $query_i_tres = "INSERT INTO formpresu_tb_ingreso(padre,ramo,subram,esp,subesp,numord,nomcta,moncta,is_mov) VALUES ('$padre','$ramo','$subram','$esp','$subesp','000','".$row_subesp('cuenta')."','$moncta','".$row_subesp('is_movi')."') ";
        $res_itres = mysqli_query($connect, $query_i_tres) or die($respuesta->titulo = mysqli_error($connect));

        $respuesta->tipo = 'success';
        $respuesta->timer = '2000';
        $respuesta->titulo = 'Cuenta Agregada Correctamente';
        $respuesta->texto = 'Reajustando Orden de Items';   
    //----------------------------------------------------
    }else{

        $query_update_monto = "UPDATE formpresu_tb_ingreso SET moncta = '$moncta' WHERE id_ingreso = '".$principal('id_ingreso')."'";;
        $update_monto = mysqli_query($connect, $query_update_monto) or die("database error:". mysqli_error($connect));
        $respuesta->tipo = 'info';
        $respuesta->timer = '5000';
        $respuesta->titulo = 'La cuenta ya estaba agregada, y solo se actualizo su monto';
        $respuesta->texto = $_SESSION("nombre").' para reducir el indice de error en cada cuenta, monto, ingresada, Por favor tomece su tiempo..';
    }
    }
}
        

$query_next_one = "SELECT sum(moncta) AS total FROM formpresu_tb_ingreso WHERE ramo = '$ramo' AND is_mov = 1 ";
$res_next_one = mysqli_query($connect, $query_next_one) or die($respuesta->titulo = mysqli_error($connect));
$next_one = $res_next_one->fetch_assoc();
$total=$next_one('total');

$query_update_next_one = "UPDATE formpresu_tb_ingreso SET moncta = '$total' WHERE padre='$padre' AND ramo='$ramo' AND subram='00' AND esp='00' AND subesp='00'";
$update_next_one = mysqli_query($connect, $query_update_next_one) or die("database error:". mysqli_error($connect));



$query_next_one = "SELECT sum(moncta) AS total FROM formpresu_tb_ingreso WHERE ramo = '$ramo' AND subram='$subram' AND is_mov = 1 ";
$res_next_one = mysqli_query($connect, $query_next_one) or die($respuesta->titulo = mysqli_error($connect));
$next_one = $res_next_one->fetch_assoc();
$total=$next_one('total');

$query_update_next_one = "UPDATE formpresu_tb_ingreso SET moncta = '$total' WHERE padre='$padre' AND ramo='$ramo' AND subram='$subram' AND esp='00' AND subesp='00'";
$update_next_one = mysqli_query($connect, $query_update_next_one) or die("database error:". mysqli_error($connect));



$query_next_one = "SELECT sum(moncta) AS total FROM formpresu_tb_ingreso WHERE ramo = '$ramo' AND subram='$subram' AND esp='$esp' AND is_mov = 1 ";
$res_next_one = mysqli_query($connect, $query_next_one) or die($respuesta->titulo = mysqli_error($connect));
$next_one = $res_next_one->fetch_assoc();
$total=$next_one('total');

$query_update_next_one = "UPDATE formpresu_tb_ingreso SET moncta = '$total' WHERE padre='$padre' AND ramo='$ramo' AND subram='$subram' AND esp='$esp' AND subesp='00'";
$update_next_one = mysqli_query($connect, $query_update_next_one) or die("database error:". mysqli_error($connect));

        


}else{
        $respuesta->tipo = 'error';
        $respuesta->titulo = 'No se envio ningun dato';
        $respuesta->texto = '';
}


}





echo json_encode( $respuesta );

?>

El código hace lo que se pide solo que es un lío vi en un lado de internet que esto se llama código espagueti si mal no recuerdo..

Además en la parte de expresar los montos no los refleja en formato de dinero con decimales, se que el problema está en sum() por lo que investigue pero no he logrado dar con la solución, otras de las cosas que use es el (si es una cuenta es de movimiento para solo sumar las cuentas grandes es decir que cuando yo ingresé solo veré las cuentas grandes(3.01.01.01.01) y las hermanas se deberán agregar esto es variable por qué puede existir 3.02.01.03.01
O
3.03.04.11.01
Es decir los dígitos son variables y deben ser ordenados y sumados como lo mostré en la imagen anterior
3.01.00.00.00 – monto sumado de sus hijas
3.01.01.00.00 – monto sumado de sus hijas
3.01.01.01.00 – monto sumado de sus hijas
3.01.01.01.01 – monto ingresado

Si agrego otra partida seguiría este orden sin repetir los primeros y sumar el monto a las cuentas grandes el monto nuevo ingresado

Cabe recordar que se que hay cosas que no deberían hacerse de esta forma pero como mencioné al principio soy nuevo en esto y quisiera ver cómo se puede mejorar y aprender de los errores, se que es algo complejo el de iniciar mi carrera por esta rama de la informática pero decidí intentarlo..

No sé si me explique bien espero recibir un poco de ayuda seguiré intentando mejorar este código y recibir su feedback..
Muchas gracias..