Итерация по набору записей FileMaker

Я новичок в FileMaker и пытаюсь получить данные через API.
У меня возникает проблема, когда я создаю newFindCommand и выполняю его, результирующий набор записей содержит столько строк, сколько имеется в макете, но каждая строка одинакова. Более конкретно, каждая строка является копией ПЕРВОЙ строки в базе данных.

Например. Я ищу продукты с кодом продукта, например, «XXX», которых должно быть 7. Я получаю 7 строк назад, но каждый из них является одним и тем же продуктом.

Я просмотрел несколько учебных пособий в Интернете, и они выполняют точно такие же операции, что и я, поэтому я растерялся относительно того, почему мои результаты выходят таким образом.

Это мой код для этой проблемы. Я еще не смог отследить причину сам.

$findCommand = $productsFM->newFindCommand($productsLayout);
$findCommand->addFindCriterion('Product Code', 'XX123');
$findCommand->addSortRule('Product Code', 1);

$result = $findCommand->execute();

if (FileMaker::isError($result)) {
echo "<p>Error: " . $result->getMessage() . "</p>";
exit;
}

$records = $result->getRecords();

foreach($records as $record) {
echo $record->getField('Product ID'); // get the same code for each iteration here
}

Любой совет?

Редактировать:
Упомянутый выше макет $ productLayout относится к макету Items.
Вот краткая разбивка диаграммы ER для таблицы Предметов.
Таблица: предметы
Идентификационный номер семьи Идентификационный номер GUID

Таблица: параметры элемента
Идентификатор изделия Описание GUID

Таблица: Цены ~ Предмет
Идентификационный номер семьи

Таблица: количество
Кол-во ID товара GUID

0

Решение

Я исправил это, пытаясь снова добавить PHP-файлы API, исходя из предположения, что у меня что-то не так. Когда я добавил файлы и запустил код, я получил несколько ошибок об использовании устаревших операторов в разных строках API-интерфейса FileMaker.
Оказывается, несколько строк используют старые =& при создании объектов и это стало причиной ошибок.
Для всех, кроме одной из этих ошибок, вы можете просто удалить&и все в порядке.
Но для одной из строк (я думаю, что это было около строки 72), если вы исправите это, удалив ‘&«API начнет возвращать неверные результаты. Это где я ошибся в первый раз.

Единственные два варианта, которые я мог видеть, — это перейти на более старую версию PHP, где =& Оператор не считается устаревшим или подавлять предупреждения в php.ini.
Я выбрал последнее:

error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]