Посчитать короткий список и перейти к выбранной позиции

Фактические данные получены через SQLSRV от отдельного SQL Server. Созданные программой учебные таблицы удалены после чтения.

Наблюдаемый результат программы
НаблюдениеРезультат
FORWARD: счётчик недоступенда
FORWARD: прочитанные товарыSKU-A, SKU-B, SKU-C
STATIC: число строк3
Переходы по результатуFIRST=SKU-A | LAST=SKU-C | PRIOR=SKU-B | RELATIVE(-1)=SKU-A | ABSOLUTE(1)=SKU-B
Позиция 9 отсутствуетда
Строки и дополнительные наблюдения
{
    "forward_count": false,
    "forward_errors": [
        {
            "SQLSTATE": "IMSSP",
            "code": -50
        }
    ],
    "positions": {
        "FIRST": "SKU-A",
        "LAST": "SKU-C",
        "PRIOR": "SKU-B",
        "RELATIVE(-1)": "SKU-A",
        "ABSOLUTE(1)": "SKU-B"
    },
    "outside": null
}

При самостоятельном запуске рядом с example.php создаются result.json с данными и metrics.json с проверками.