administrador.modelado.joins.obten_tablas_completas.21.16.0 - gamboamartin/administrador GitHub Wiki

obten_tablas_completas

Esta función pública se encarga de obtener y ajustar las tablas completas necesarias para una consulta SQL, incluyendo las tablas principales y las tablas adicionales para realizar joins.

Signatura


final public function obten_tablas_completas(array $columnas_join, string $tabla):array|string

Parámetros

$columnas_join (array): Un array asociativo donde las claves representan las tablas principales y los valores son las tablas con las que se va a realizar el join.

$tabla (string): El nombre de la tabla principal para la consulta.

Retorna

  • array|string: Un array de tablas completas para la consulta SQL, o un mensaje de error si ocurre un problema durante el proceso.

Explicación Detallada

Manipulación del nombre de tabla: Se elimina el prefijo 'models' del nombre de la tabla utilizando la función str_replace().

Validación del nombre de tabla: Se verifica si el nombre de la tabla está vacío. Si es así, se devuelve un mensaje de error.

Generación de tablas principales: Se crea una cadena de tablas con el nombre de la tabla principal seguido de un alias utilizando la variable $tabla.

Preparación de tablas para joins: Se asigna el array $columnas_join a la variable $tablas_join.

Ajuste de tablas: Se llama a la función ajusta_tablas() para ajustar las tablas completas necesarias para la consulta SQL. Si se produce un error durante este proceso, se devuelve un mensaje de error.

Retorno de datos o mensaje de error: Finalmente, se devuelve el array de tablas completas si el proceso se realizó correctamente, o un mensaje de error si ocurrió algún problema durante el proceso.

Ejemplos

// Ejemplo: Obtener tablas completas para una consulta SQL
$columnas_join = ["usuarios" => "pedidos", "productos" => "ventas"];
$tabla_principal = "usuarios";
$resultado_tablas = obten_tablas_completas($columnas_join, $tabla_principal);
if (is_string($resultado_tablas)) {
    // Manejar el mensaje de error
    echo "Error: $resultado_tablas";
} else {
    // Usar el array de tablas completas en la consulta SQL
    var_dump($resultado_tablas);
}


Código de la Función

final public function obten_tablas_completas(array $columnas_join, string $tabla):array|string{
        $tabla = str_replace('models\\','',$tabla);
        if($tabla === ''){
            return $this->error->error(mensaje: 'La tabla no puede ir vacia', data: $tabla, es_final: true);
        }

        $tablas = $tabla.' AS '.$tabla;
        $tablas_join = $columnas_join;

        $tablas = $this->ajusta_tablas(tablas: $tablas, tablas_join: $tablas_join);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar data join', data: $tablas);
        }
        return $tablas;
    }