2014-10-14 3 views
0

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

E.g. Я ищу продукты с кодом продукта, например «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 для таблицы Items. Таблица: Продукты Family ID Item ID GUID

Таблица: Опции Пункт Item ID Описание GUID

Таблица: Цены ~ Item Family ID Item ID товара Вариант Кол-во

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

+0

Это может быть полезно знать таблицы в решении FileMaker. В каких табличных случаях вы пытаетесь выполнить запрос и как они связаны? – pft221

ответ

0

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

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

error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT

Смежные вопросы