src.where.data_sql_campo - gamboamartin/where GitHub Wiki

data_sql_campo

La función data_sql_campo es una función privada dentro de una clase que genera una cadena SQL basada en el campo proporcionado, un campo de filtro, y un array de filtros. La función valida primero los datos antes de construir y devolver una cadena SQL que combina el campo y el filtro con su respectivo operador.

Signatura

private function data_sql_campo(string $campo, string $campo_filtro, array $filtro): string|array

Parámetros

$campo (string): Nombre del campo de la base de datos que se desea filtrar.

$campo_filtro (string): Clave que se utilizará para acceder a los datos dentro del array $filtro. Este valor determina el operador y el valor con el cual se construirá la condición SQL.

$filtro (array): Array asociativo que contiene los filtros que se aplicarán. Este array debe tener la estructura:

[
    'campo_filtro1' => [
        'operador' => '=',   // operador SQL
        'valor' => 'valor1', // valor a filtrar
    ],
    'campo_filtro2' => [
        'operador' => '>',   // operador SQL
        'valor' => 'valor2', // valor a filtrar
    ],
    ...
]

Retorna

  • string|array: Retorna una cadena SQL que representa la condición de filtro construida, o un array en caso de que ocurra un error.

Explicación Detallada

  • Validación de Datos:

    • La función comienza validando los datos recibidos a través de la función valida_campo_filtro. Si esta función detecta algún error, la ejecución se detiene y se devuelve un array con el mensaje de error utilizando la función error.
  • Construcción de la Cadena SQL:

    • Si la validación es exitosa, la función construye y devuelve una cadena SQL utilizando el campo, el operador y el valor especificados en $filtro.

Ejemplos

$campo = 'nombre';
$campo_filtro = 'nombre_filtro';
$filtro = [
    'nombre_filtro' => [
        'operador' => '=',
        'valor' => 'Juan',
    ]
];

$sql = $this->data_sql_campo($campo, $campo_filtro, $filtro);
// Resultado esperado: "'nombre'='Juan'"

Código de la Función

private function data_sql_campo(string $campo, string $campo_filtro, array $filtro): string|array
    {

        $valida = $this->valida_campo_filtro(campo: $campo,campo_filtro:  $campo_filtro,filtro:  $filtro);
        if(errores::$error){
            return $this->error->error(mensaje:'Error al validar datos',  data:$valida);
        }

        return "'".$campo."'".$filtro[$campo_filtro]['operador'].$filtro[$campo_filtro]['valor'];

    }