Buenas
Antes de nada, puedes usar las etiquetas code para hacer esto:
aquí tu codigo
Y que lo que pegues de código sea más legible para cualquiera ;) Si escribes desde el PC, en la zona de la derecha te salen las etiquetas que puedes usar.
De lo que hayas invertido tantas horas que te dé vergüenza decirlo, si no quieres leer un libro de POO para que te permita aprender más directamente, es totalmente normal.
Desde el controlador, aunque sea posible hacerlo, mentalízate que no debes escribir consultas SQL, salvo casos muy puntuales, tan concretos que como normal no lo debes hacer nunca.
Por lo que tu mismo explicas, entiendes que funciona con el patrón MVC, pero sin embargo en tu código veo que sólo usas VC (es el fallo típico cuando nunca se ha trabajado así). El concepto de separarlo y relacionarlo, cuando se pasan a usar objetos, parece muy complejo, pero realmente es cambiar la forma de pensar (divide y vencerás) y cuando te defiendas mínimamente, te darás cuenta de que obtienes un código mucho más claro y legible.
Para empezar con algo sencillo, coge un modelo pequeño como el de país, y asegúrate que entiendes como funciona, e intenta hacer lo que pretendes de la misma forma como este de ejemplo.
Para resumirlo y tal vez un poco a lo bestia:
- El modelo es el que lee/guarda/elimina datos en la DB, tu lo estás haciendo en el controlador.
- El controlador es el que gestiona las acciones que quiere hacer el usuario, ver un listado, obtener un listado filtrado, editar un registro, ...
- La vista, muestra el resultado de las acciones y permite ejecutar nuevas acciones.
En tu caso, tu kdb modeliza algún tipo de datos, desconozco lo que porqué no hay información suficiente, pero el código que tu has metido en el private_core, debería estar debidamente fraccionado dentro del modelo, de forma que sean acciones más concretas. En particular, lo que has hecho, sería el equivalente a lo que usamos en la función all(), y en tu private_core debería quedar tan solo algo como esto:
$kbd = new kbd();
$this->resultados = $kbd->all();
Así que para empezar a mejorar tu código y que te familiarices mejor, añade-te un modelo para representar tus datos, usa pais.php como ejemplo y obvía estas partes por ahora:
- Función install, que sólo tenga un return ''
- Funciones is_default, get_by_iso, test y clean_cache, por ahora puedes prescindir de ellas, y como mucho, necesitaras test y clean_cache, pero por ahora necesitas lo básico.
Así que en resumen, te queda crear tu modelo y rellenar, __construct, url, get, exists, save, delete y all.
Una vez tengas eso, ya puedes usarlo como te dije desde el controlador.
Para terminar, y que tengas un ejemplo completo, estos son los archivos con los que te recomiendo partir (aunque puede que no sean un ejemplo directo a lo que quieres, te permitirán aprender con mayor facilidad por tener menos datos):
- facturascripts_2015: model/core/pais.php y model/table/paises.xml
- facturacion_base: controller/admin_paises.php
- facturacion_base: view/admin_paises.html
Y a partir de que te quede claro como se usa lo básico, ya podrás ir ampliándolo a tus necesidades y a tu ritmo.