prepare($sql); $stmt->bindParam(":campo", $campo, PDO::PARAM_STR); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } static public function mdlValidarFechas($id_persona, $campoFecha, $campoLugar, $valorFecha, $valorLugar) { $capacidad = 20; $camposPermitidosFecha = [ 'fecha_bp', 'fecha_b1_1', 'fecha_b1_2', 'fecha_b2_1', 'fecha_b2_2', 'fecha_b3_1', 'fecha_b3_2' ]; $camposPermitidosLugar = [ 'lugar_bp', 'lugar_b1_1', 'lugar_b1_2', 'lugar_b2_1', 'lugar_b2_2', 'lugar_b3_1', 'lugar_b3_2' ]; if (!in_array($campoFecha, $camposPermitidosFecha, true) || !in_array($campoLugar, $camposPermitidosLugar, true)) { return [ 'ok' => false, 'mensaje' => 'Campos inválidos.' ]; } $sql = "SELECT COUNT(*) AS cantidad FROM aca_usuarios WHERE $campoFecha = :fecha AND $campoLugar = :lugar AND id <> :id_persona"; $stmt = Conexion::conectar()->prepare($sql); $stmt->bindValue(":id_persona", (int)$id_persona, PDO::PARAM_INT); $stmt->bindValue(":fecha", $valorFecha, PDO::PARAM_STR); $stmt->bindValue(":lugar", $valorLugar, PDO::PARAM_STR); $stmt->execute(); $cantidad = (int)$stmt->fetchColumn(); $libres = max(0, $capacidad - $cantidad); return [ 'ok' => true, 'capacidad' => $capacidad, 'cantidad' => $cantidad, 'libres' => $libres ]; } }