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

ajusta_tablas

Esta función privada se encarga de ajustar y generar los datos para las tablas en una consulta SQL, incluyendo la preparación de joins si es necesario.

Signatura

private function data_tabla_sql(string $key, array|string $tabla_join, string $tablas): array|string

Parámetros

$tablas (string): La cadena de tablas original.

$tablas_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.

Retorna

  • array|string: Una cadena de tablas ajustada para incluir joins, o un mensaje de error si ocurre un problema durante el proceso.

Explicación Detallada

Inicialización de variables: Se asigna la variable $tablas_env con el valor de $tablas inicialmente para su posterior uso.

Iteración sobre las tablas para joins: Se itera sobre el array $tablas_join, donde cada elemento representa una tabla principal y su tabla asociada para realizar el join.

Generación de datos para cada tabla: Para cada par de tablas en $tablas_join, se llama a la función data_tabla_sql() para generar los datos necesarios para la consulta SQL. Si se produce un error durante este proceso, se devuelve un mensaje de error.

Actualización de la cadena de tablas: Se actualiza la variable $tablas con el valor generado por data_tabla_sql().

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

Ejemplos

// Ejemplo: Ajustar tablas para una consulta SQL
$tablas_originales = "usuarios, productos";
$tablas_join = ["usuarios" => "pedidos", "productos" => "ventas"];
$resultado_ajuste = ajusta_tablas($tablas_originales, $tablas_join);
if (is_string($resultado_ajuste)) {
    // Usar la cadena de tablas ajustada en la consulta SQL
    echo "Tablas ajustadas: $resultado_ajuste";
} else {
    // Manejar el mensaje de error
    echo "Error: $resultado_ajuste";
}


Código de la Función

private function ajusta_tablas( string $tablas, array $tablas_join): array|string
    {
        $tablas_env = $tablas;
        foreach ($tablas_join as $key=>$tabla_join){
            $tablas_env = $this->data_tabla_sql(key: $key, tabla_join: $tabla_join,tablas:  $tablas);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al generar data join',data:  $tablas_env);
            }
            $tablas = (string)$tablas_env;
        }
        return $tablas_env;
    }