src.where.campo.data_sql_base - gamboamartin/where GitHub Wiki

data_sql_base

La función data_sql_base es una función privada que valida los datos de un campo y un filtro, y luego construye una cadena SQL básica utilizando estos datos. Devuelve la cadena SQL generada si todos los datos son válidos o un array con un mensaje de error en caso contrario.

Signatura

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

Parámetros

$campo (string): El campo que se utilizará en la construcción de la cadena SQL.

$campo_filtro (string): El campo de filtro que se utilizará para obtener el operador y el valor del filtro.

$filtro (array): Un array asociativo que contiene los datos del filtro.

Retorna

  • string|array: La función devuelve una cadena SQL construida con el campo, operador y valor del filtro si todos los datos son válidos. En caso de error, devuelve un array con un mensaje de error.

Explicación Detallada

  • Validación de datos:

    • La función comienza validando los datos del campo y el filtro utilizando la función valida_campo_filtro. Si ocurre un error durante la validación, la función retorna un array con un mensaje de error.
  • Construcción de la cadena SQL:

    • Si el campo de filtro está vacío después de la limpieza, la función retorna un array con un mensaje de error indicando que el campo de filtro está vacío.
  • Limpieza del campo:

    • Si todos los datos son válidos, la función construye y retorna una cadena SQL básica utilizando el campo, el operador y el valor del filtro.

Ejemplos

$filtro = [
    'campo_filtro1' => [
        'operador' => '=',
        'valor' => 'valor1'
    ],
    // más filtros...
];

$resultado = $this->data_sql_base('campo1', 'campo_filtro1', $filtro);

if (is_array($resultado)) {
    echo "Error: " . $resultado['mensaje'];
} else {
    echo "Cadena SQL: " . $resultado;
}
/*
En este ejemplo, si 'campo_filtro1' tiene todos los datos necesarios y válidos en el array de filtros, la función retornará una cadena SQL construida con el campo, operador y valor del filtro. En caso contrario, retornará un array con un mensaje de error.



*/

Código de la Función

private function data_sql_base(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'] . "' ";
    }