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;
}