首页 文章

迭代FileMaker记录集

提问于
浏览
0

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

例如 . 我正在寻找产品代码如'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

    我修复了这个尝试再次添加api PHP文件,假设我有错误的操作 . 当我添加文件并运行代码时,我在FileMaker API中的各个行使用了已弃用的运算符时遇到了一些错误 . 事实证明,在创建对象时,有几行使用old =&,这是导致错误的原因 . 对于除了其中一个错误之外的所有错误,您只需删除“&”即可,一切正常 . 但是对于其中一行(我认为它是在第72行附近),如果你通过删除'&'来纠正它,API将开始返回不正确的结果 . 这是我第一次出错的地方 .

    我能看到的唯一两个选项是下拉到PHP的旧版本,其中=&运算符不被弃用或者禁止php.ini中的警告 . 我选择了后者:

    error_reporting = E_ALL&~E_DEPRECATED&~E_STRICT

相关问题