迭代FileMaker记录集

时间:2014-10-14 03:16:38

标签: php api filemaker

我是FileMaker的新手并试图通过API获取数据。 我遇到的问题是当我创建一个newFindCommand并执行它时,结果记录集包含的布数与布局中的行数一样多,但每行都相同。更具体地说,每一行都是数据库中第一行的副本。

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布局。 以下是Items表的ER图的简要分类。 表:项目 家庭ID项目ID GUID

表:项目选项 物料ID描述GUID

表:定价〜项目 家庭ID项目ID项目选项数量

表:数量 数量项目ID GUID

1 个答案:

答案 0 :(得分:0)

我修复了这个问题,试图再次添加api PHP文件,假设我出错了。当我添加文件并运行代码时,我在FileMaker API中的各个行使用了已弃用的运算符时遇到了一些错误。 事实证明,几行使用旧=&amp;在创建对象时,这是错误的原因。 除了其中一个错误,你可以删除'&amp;'一切都很好。 但对于其中一条线(我认为它是在第72行附近),如果你通过删除'&amp;'来纠正它API将开始返回不正确的结果。这是我第一次出错的地方。

我能看到的唯一两个选项是下载到PHP的旧版本,其中=&amp;不推荐运算符或禁止php.ini中的警告。 我选择了后者:

error_reporting = E_ALL&amp; ~E_DEPRECATED&amp; 〜E_STRICT