administrador.modelado.joins.genera_join_renombrado.21.12.0 - gamboamartin/administrador GitHub Wiki

genera_join_renombrado

Esta función genera la cláusula JOIN renombrada para ser utilizada en una consulta SQL.

Signatura

private function genera_join_renombrado(string $campo_renombrado, string $campo_tabla_base_id, string $join,
                                        string $renombrada, string $tabla, string $tabla_enlace): array|string

Parámetros

$campo_renombrado (string): El nombre del campo renombrado en la tabla.

$campo_tabla_base_id (string): El nombre del campo de identificación (ID) en la tabla base.

$join (string): El tipo de join que se utilizará en la consulta SQL (INNER, LEFT, RIGHT).

$renombrada (string): El nombre de la tabla renombrada en la consulta SQL.

$tabla (string): El nombre de la tabla base en la consulta SQL.

$tabla_enlace (string): El nombre de la tabla enlazada en la consulta SQL.

Retorna

  • string|array: La función devuelve un array que contiene la cláusula JOIN renombrada preparada para ser utilizada en una consulta SQL. En caso de encontrar un error, devuelve un string que contiene detalles del error.

Explicación Detallada

  • Inicialización del renombrado: Se inicializan los datos necesarios para realizar el renombrado de tablas en la consulta SQL utilizando la función init_renombre.
  • Validación de nombres: Se validan los nombres de los campos y tablas utilizando la función valida_renombres para garantizar que no estén vacíos y que el tipo de join sea válido.
  • Generación del ID renombrado: Se genera el nombre del campo de identificación (ID) renombrado utilizando la función id_renombrada.
  • Generación de datos para renombrar: Se generan los datos necesarios para el renombrado de tablas utilizando la función data_for_rename.
  • Creación de la cláusula JOIN renombrada: Se construye la cláusula JOIN renombrada utilizando los datos preparados.
  • Devolución de la cláusula JOIN renombrada: Se devuelve la cláusula JOIN renombrada.

Ejemplos

// Llamada a la función genera_join_renombrado
$campo_renombrado = 'id_usuario';
$campo_tabla_base_id = 'id';
$join = 'LEFT';
$renombrada = 'u';
$tabla = 'usuarios';
$tabla_enlace = 'pedidos';

$join_renombrado = genera_join_renombrado($campo_renombrado, $campo_tabla_base_id, $join, $renombrada, $tabla, $tabla_enlace);

echo "Cláusula JOIN renombrada: " . $join_renombrado;


/*
En este ejemplo, se llama a la función genera_join_renombrado con los parámetros necesarios para generar la cláusula JOIN renombrada en una consulta SQL. El resultado se asigna a la variable $join_renombrado, que luego se imprime.
*/

Código de la Función

private function genera_join_renombrado(string $campo_renombrado, string $campo_tabla_base_id, string $join,
                                            string $renombrada, string $tabla, string $tabla_enlace):array|string{


        $init = $this->init_renombre(tabla: $tabla, tabla_enlace:$tabla_enlace);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al inicializar ', data: $init);
        }

        $valida = (new validaciones())->valida_renombres(campo_renombrado: $campo_renombrado,join:  $join,
            renombrada: $renombrada,tabla:  $init->tabla,
            tabla_enlace:  $init->tabla_enlace);

        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar ', data: $valida);
        }

        $id_renombrada = $this->id_renombrada(campo_tabla_base_id: $campo_tabla_base_id);
        if(errores::$error){
            return $this->error->error(mensaje: 'El al obtener renombrada ',data:  $id_renombrada);
        }

        $data_rename = $this->data_for_rename(id_renombrada: $id_renombrada,init: $init,join: $join,
            renombrada: $renombrada);
        if(errores::$error){
            return $this->error->error(mensaje: 'El al obtener datos ', data: $data_rename);
        }


        return ' '.$data_rename->asignacion_tabla.' ON '.$data_rename->on_join.'.'.$campo_renombrado;
    }