src.where.filtro_extra_sql_genera - gamboamartin/where GitHub Wiki

filtro_extra_sql_genera

La función filtro_extra_sql_genera es una función privada que construye una cláusula SQL adicional combinando una nueva condición con una cláusula SQL existente. Si la cláusula SQL existente está vacía, se agrega directamente la nueva condición; de lo contrario, se combina utilizando un operador de comparación.

Signatura

private function filtro_extra_sql_genera(string $comparacion, string $condicion, string $filtro_extra_sql): string

Parámetros

  • string $comparacion:
    El operador de comparación que se utilizará para combinar la nueva condición con la cláusula SQL existente. Este operador puede ser AND, OR, etc.

  • string $condicion:
    La nueva condición SQL que se desea agregar a la cláusula SQL existente.

  • string $filtro_extra_sql:
    La cláusula SQL existente a la cual se le agregará la nueva condición.

Retorna

  • string:
    Retorna la cadena que representa la cláusula SQL combinada, incluyendo la nueva condición agregada.

Explicación Detallada

  1. Verificación de la cláusula SQL existente:

    • La función verifica si la variable $filtro_extra_sql está vacía.
    • Si $filtro_extra_sql está vacía, la función simplemente asigna la nueva condición $condicion a $filtro_extra_sql.
  2. Combinación de la nueva condición con la cláusula SQL existente:

    • Si $filtro_extra_sql no está vacía, la función combina la cláusula SQL existente con la nueva condición utilizando el operador de comparación $comparacion.
  3. Retorno de la cláusula SQL combinada:

    • La función retorna la cadena $filtro_extra_sql que representa la cláusula SQL combinada.

Ejemplos

$comparacion = " AND ";
$condicion = "precio >= 100";
$filtro_extra_sql = "fecha >= '2023-01-01'";

$resultado = $this->filtro_extra_sql_genera($comparacion, $condicion, $filtro_extra_sql);

// Resultado esperado:
// "fecha >= '2023-01-01' AND precio >= 100"
// Si $filtro_extra_sql estuviera vacío, el resultado sería:
// "precio >= 100"

Código de la Función

private function filtro_extra_sql_genera(string $comparacion, string $condicion, string $filtro_extra_sql): string
    {
        if($filtro_extra_sql === ''){
            $filtro_extra_sql .= $condicion;
        }
        else {
            $filtro_extra_sql .=  $comparacion . $condicion;
        }
        return $filtro_extra_sql;

    }