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