administrador.base.orm._where.where_inicial - gamboamartin/administrador GitHub Wiki

where_inicial

La función where_inicial es una función privada que genera una cláusula SQL WHERE para seleccionar un registro específico en una tabla, basada en un campo clave (campo_llave) o en el identificador del registro (registro_id). La función valida los parámetros proporcionados y utiliza las funciones auxiliares where_id_base y where_campo_llave para construir la cláusula WHERE adecuada.

Signatura


private function where_inicial(string $campo_llave, int $registro_id, string $tabla): array|string

Parámetros

  • string $campo_llave:
    Una cadena que representa el nombre del campo clave en la tabla, generalmente utilizado como la clave primaria o un identificador único. Si está vacío, se utilizará solo el identificador del registro (registro_id) para generar la cláusula WHERE.

  • int $registro_id:
    Un valor entero que representa el identificador del registro que se desea seleccionar o modificar en la consulta SQL. Debe ser mayor que 0.

  • string $tabla:
    Una cadena que representa el nombre de la tabla en la base de datos donde se buscará el registro.

Retorno

  • array|string:
    Retorna una cadena que representa la cláusula SQL WHERE que identifica un registro específico en la tabla, utilizando ya sea el campo clave (campo_llave) o el identificador del registro (registro_id). En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Validación del nombre de la tabla:

    • La función utiliza trim() para eliminar espacios en blanco al inicio y al final del parámetro $tabla.
    • Si $tabla está vacía después de la limpieza, se genera un mensaje de error y se retorna un array con el mensaje de error.
  2. Generación de la cláusula WHERE base:

    • La función llama a where_id_base() para generar la cláusula WHERE basada en el identificador del registro (registro_id).
    • Si ocurre un error durante este proceso, se genera un mensaje de error y se retorna un array con el mensaje de error.
  3. Construcción de la cláusula WHERE final:

    • Si $campo_llave está vacío, la función utiliza la cláusula WHERE generada por where_id_base().
    • Si $campo_llave no está vacío, la función llama a where_campo_llave() para generar la cláusula WHERE utilizando tanto el campo clave como el identificador del registro.
    • Si ocurre un error durante la generación de where_campo_llave(), se genera un mensaje de error y se retorna un array con el mensaje de error.
  4. Retorno de la cláusula WHERE final:

    • La función retorna la cláusula SQL WHERE generada que identifica el registro específico en la tabla.

Ejemplos

$campo_llave = 'id'; $registro_id = 123; $tabla = 'usuarios';

$resultado = $this->where_inicial($campo_llave, $registro_id, $tabla);

// Resultado esperado: // ' WHERE usuarios.id = 123 ' // Un array de error si ocurre algún problema.


### Código de la Función
```php
private function where_inicial(string $campo_llave, int $registro_id, string $tabla): array|string
    {
        $tabla = trim($tabla);
        if($tabla === ''){
            return $this->error->error(mensaje: 'Error tabla esta vacia',data:  $tabla, es_final: true);
        }
        $where_id_base = $this->where_id_base(registro_id: $registro_id,tabla:  $tabla);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al generar where_id_base',data:  $where_id_base);
        }

        if($campo_llave === ""){
            $where = $where_id_base;
        }
        else{
            $where_campo_llave = $this->where_campo_llave(campo_llave: $campo_llave, registro_id: $registro_id,
                tabla: $tabla);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al generar where_id_base',data:  $where_campo_llave);
            }
            $where = $where_campo_llave;
        }
        return $where;

    }